私のWinJSアプリケーションをしばらく休止状態にしてから戻ってきて、ボタンをクリックすると何らかの理由で私のバックエンドへの呼び出しが機能しません。MobileServices.web.js不正なAPI呼び出し
サーバーから「Unauthorized」エラーが発生します。
ユーザーまたは何かを再認証するようにinvokeApiを変更するにはどうすればよいですか?
誰もがmobileservices.web.jsを使用してどのような経験をしていますか?また、エンドユーザが永久に自分自身を再認証することなくログインし続ける方法はありますか?
ありがとうございます。
client.invokeApi("getTopForumsTotal", {
method: "post"
}).then(function (results) {
// do something
}, function (error) {
WinJS.log(error);
});
私はwinjs mobileServiceを使用してユーザーを認証します。
client.login("microsoftaccount").done(function (results) {
// Create a credential for the returned user.
credential = new Windows.Security.Credentials.PasswordCredential("myapp", results.userId, results.mobileServiceAuthenticationToken);
vault.add(credential);
completeDispatcher();
}, function (error) {
WinJS.log(JSON.stringify(error));
errorDispatcher(error);
});
これは私がエンドユーザーのトークンを更新するために使用するものです。
client._request("GET", "/.auth/refresh", null, null, {
accept: "application/json",
"ZUMO-API-VERSION": "2.0.0"
}, [], (error, response) => {
if (!error) {
var userObject = JSON.parse(response.responseText)
if (userObject.authenticationToken) {
client.currentUser.mobileServiceAuthenticationToken = userObject.authenticationToken;
testCall().done(function (success) {
if (success) {
credential = new Windows.Security.Credentials.PasswordCredential("myapp", userObject.user.userId, userObject.authenticationToken);
vault.add(credential);
authenticated = true;
completeDispatcher();
}
else errorDispatcher('testCall API does not exist');
});
}
else errorDispatcher('no authentication token returned');
}
else errorDispatcher(error);
});
は、Windows/Windowsの携帯電話アプリケーションを作成するためにWinJSを使用していますか?モバイルアプリをどのように認証しますか?問題をよりよく理解するために、より多くの情報を提供してください。 –
私は自分の答えを更新しました。私が経験している問題は、いつリフレッシュトークンルーチンを呼び出すかということです。失敗する点は、クライアントオブジェクトを使用してサーバーにapi呼び出しを行うときです。例えばclient.invokeApi、テーブル呼び出し、またはclient._request呼び出し。これらの呼び出しは、認証トークンが期限切れになると失敗します。その前にリフレッシュを呼び出す必要があります。ユーザーマシンがアイドル状態になって復帰した場合にトークンを更新できるように、どうすれば設定できますか? –
リフレッシュトークンの使い方について[このブログの投稿](https://shellmonger.com/2016/04/13/30-days-of-zumo-v2-azure-mobile-apps-day)を参照することをお勧めします-7-リフレッシュ・トークン/)。 –