Question

J'essaie de créer un compte utilisateur via l'API Apigee JS.Cela a très bien fonctionné la dernière fois que je l'ai fait avant les vacances à la mi-décembre.Maintenant, cependant, j'obtiens une erreur 401 non autorisée. token_expired.

Existe-t-il un moyen d'actualiser le jeton ?Je ne sais pas pourquoi il aurait expiré.

C'est ce que j'essaie.J’instancie d’abord le client de données.Aucun problème ici :

var dataClient;
var client_creds = {
    orgName: '*******',
    appName: '*******'
}
dataClient = new Apigee.Client(client_creds);

Plus tard, lorsque j'essaie de créer un nouvel utilisateur, j'obtiens le token_expired erreur:

dataClient.request(options, function (error, response) {
        if (error) {
            console.log(response);
            alert("Something went wrong when trying to create the user. " + response.error)
            // Error
        } else {
            // Success - the user has been created, now login.
            dataClient.login(user.email, user.password,
                function (err) {
                    if (err) {
                        //error - could not log user in
                        console.log("There was an error logging in " + user.name);
                    } else {
                        //success - user has been logged in
                    }
                }
            );
        }
    });

j'ai aussi essayé dataClient.signup, mais même erreur.

Était-ce utile?

La solution

Il n’y a pas de jetons d’actualisation dans App Services ;vous devrez suivre le flux de connexion afin de récupérer un nouveau jeton.Notez que vous pouvez spécifier le ttl paramètre, comme ceci, vous n'avez donc pas besoin de le faire aussi fréquemment :

https://api.usergrid.com/{org}/{app}/token?ttl=604800

Par défaut, cette durée est définie sur 7 jours, mais vous pouvez modifier la durée défaut application max ttl à 0 (non expirant) ou quelque chose d'autre comme 31104000000 (365 jours).

Pour ce faire, vous faites un PUT demande:

https://api.usergrid.com/{org}/{app}/?client_id={app_client_id}&client_secret={app_client_secret}

Avec la charge utile JSON :

{
    "accesstokenttl":0
}

Ou pendant 1 an :

{
    "accesstokenttl":31104000000
}

Autres conseils

Si cela ne fonctionne pas pour vous, les jetons d'autorisation du SDK JavaScript sont conservés dans le stockage local de votre navigateur.Dans Chrome, utilisez les outils de développement.Dans l'onglet Ressources sur le côté gauche, développez l'entrée Stockage local.Vous devriez voir quelque chose comme "http://usergrid.dev" ou quelque chose de similaire.Choisissez cela et sur le côté droit, vous devriez voir une entrée pour accessToken.Supprimez-le et cela devrait résoudre votre problème.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top