Pregunta

Estoy intentando crear una cuenta de usuario a través de la API JS de Apigee.Esto funcionó bien la última vez que hice esto antes de las vacaciones a mediados de diciembre.Ahora, sin embargo, aparece un error de lectura 401 no autorizado token_expired.

¿Hay alguna forma de actualizar el token?No sé por qué habría caducado.

Esto es lo que estoy intentando.Primero creo una instancia del cliente de datos.No hay problemas aquí:

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

Más tarde, al intentar crear un nuevo usuario, aparece el token_expired error:

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
                    }
                }
            );
        }
    });

yo también lo he intentado dataClient.signup, pero el mismo error.

¿Fue útil?

Solución

No hay tokens de actualización dentro de App Services;tendrás que seguir el flujo de inicio de sesión para recuperar un nuevo token.Tenga en cuenta que puede especificar el ttl parámetro, así, por lo que no es necesario hacer esto con tanta frecuencia:

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

De forma predeterminada, esto está configurado en 7 días, pero puede cambiar el por defecto aplicación ttl máximo a 0 (no caducable) o algo así como 31104000000 (365 dias).

Para hacer eso, haces un PUT pedido:

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

Con carga útil JSON:

{
    "accesstokenttl":0
}

O por 1 año:

{
    "accesstokenttl":31104000000
}

Otros consejos

Si eso no funciona para usted, los tokens de autorización para el SDK de JavaScript se mantienen en el almacenamiento local de su navegador.En Chrome, use las herramientas del desarrollador.En la pestaña Recursos en el lado izquierdo, expande la entrada de almacenamiento local.Debería ver algo como " http://usergrid.dev " o algo similar.Elija eso y en el lado derecho debe ver una entrada para AccessToken.Eliminar eso y debería resolver su problema.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top