質問

Apigee JS APIを介してユーザーアカウントを作成しようとしています。12月中旬の休日の前にこれを最後にしているとき、これはちょうどうまく機能しました。ただし、token_expiredを読み取る401の不正なエラーが発生しました。

トークンをリフレッシュする方法はありますか?私はそれが期限切れだろう理由がわからない。

これは私が試みているものです。まずデータクライアントをインスタンス化します。ここでは問題ありません:

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を試みましたが、同じエラーです。

役に立ちましたか?

解決

App Servicesには更新トークンはありません。ログインフロー新しいトークンを取得するために。ttlパラメータを指定できるように、これを頻繁に実行する必要はありません。

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

デフォルトでは7日に設定されていますが、 default app max 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
}
.

他のヒント

それが機能しない場合、JavaScript SDKの許可トークンはブラウザのローカルストレージに保存されます。Chromeでは、開発者ツールを使用してください。左側の[リソース]タブで、ローカルストレージエントリを展開します。あなたは「 http://usergrid.dev 」のようなものを見るべきです。AccessTokenのエントリが表示されるはずです。それを削除してあなたの問題を解決するべきです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top