Lorsque je laisse mon application WinJS inactive pendant un certain temps, puis que je la rallume et que je clique sur un bouton, pour une raison ou une autre, mes appels à mon serveur ne fonctionnent pas.MobileServices.web.js api call
Je reçois une erreur "non autorisée" du serveur. Comment puis-je modifier le invokeApi afin qu'il réauthentifie l'utilisateur ou quelque chose?
Quelqu'un a-t-il déjà utilisé le service mobileservices.web.js et comment garder l'utilisateur final connecté sans avoir à se réauthentifier?
Merci.
client.invokeApi("getTopForumsTotal", {
method: "post"
}).then(function (results) {
// do something
}, function (error) {
WinJS.log(error);
});
J'utilise winjs mobileService pour authentifier l'utilisateur.
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);
});
et c'est ce que j'utilise pour actualiser le jeton des utilisateurs finaux.
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);
});
Utilisez-vous WinJS pour créer l'application Windows Phone/Windows? Comment authentifiez-vous votre application mobile? S'il vous plaît donner plus d'informations pour nous aider à mieux comprendre votre problème. –
J'ai mis à jour ma réponse. Le problème que je rencontre est quand appeler la routine de jeton d'actualisation. Les points où il échoue est lors de la création d'appels API sur le serveur à l'aide de l'objet client. par exemple. client.invokeApi, appels de table ou appels client._request. Ces appels échouent si le jeton d'authentification expire, de sorte que l'actualisation doit être appelée avant cela. Comment puis-je le configurer de sorte que je puisse actualiser le jeton si la machine des utilisateurs a été inactive et qu'ils reviennent? –
A propos de l'utilisation des jetons d'actualisation Je vous recommande de consulter [cet article de blog] (https://shellmonger.com/2016/04/13/30-days-of-zumo-v2-azure-mobile-apps-day -7-refresh-jetons /). –