0

apigee JS API を使用してユーザー アカウントを作成しようとしています。12月中旬の休暇前にこれを最後に行ったとき、これはうまくいきました。しかし、今は 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

App Services 内には更新トークンはありません。新しいトークンを取得するには、ログイン フローに従う必要があります。次のようにパラメーターを指定できる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 に答える
1

それがうまくいかない場合は、JavaScript SDK の認証トークンがブラウザーのローカル ストレージに保持されます。Chrome では、開発者ツールを使用します。左側の [Resources] タブで、[Local Storage] エントリを展開します。「 http://usergrid.dev 」などのようなものが表示されるはずです。それを選択すると、右側に accessToken のエントリが表示されます。それを削除すると、問題が解決するはずです。

于 2014-01-11T22:13:12.797 に答える