0

我正在尝试通过 apigee JS API 创建用户帐户。当我在十二月中旬假期前最后一次这样做时,这工作得很好。但是,现在我收到 401 Unauthorized error reading token_expired

有没有办法刷新令牌?我不知道为什么它会过期。

这就是我正在尝试的。首先我实例化数据客户端。这里没有问题:

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

后来,在尝试创建新用户时,我收到token_expired错误:

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

我也试过了dataClient.signup,但同样的错误。

4

2 回答 2

1

如果这对您不起作用,JavaScript SDK 的授权令牌将保存在浏览器的本地存储中。在 Chrome 中,使用开发者工具。在左侧的资源选项卡中,展开本地存储条目。您应该会看到类似“ http://usergrid.dev ”或类似的东西。选择它,在右侧您应该会看到 accessToken 的条目。删除它,它应该可以解决您的问题。

于 2014-01-11T22:13:12.797 回答
1

应用服务中没有刷新令牌;您需要按照登录流程来检索新令牌。请注意,您可以ttl像这样指定参数,因此您不需要经常这样做:

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

默认情况下,设置为 7 天,但您可以将默认应用程序最大 ttl 更改为0(非过期)或其他类似31104000000(365 天)。

为此,您提出PUT请求:

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

使用 JSON 有效负载:

{
    "accesstokenttl":0
}

或 1 年:

{
    "accesstokenttl":31104000000
}
于 2014-01-11T20:55:59.650 回答