質問
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のエントリが表示されるはずです。それを削除してあなたの問題を解決するべきです。
所属していません StackOverflow