Я использую Microsoft.WindowsAzure.MobileServices.MobileServiceClient для аутентификации пользователей с помощью их учетных записей Google и Xamarin.Auth.AccountStore для хранения токенов.Когда приложение запускается в первый раз, AccountStore пуст.Пользователь регистрируется с помощью метода MobileServiceClient.LoginAsync.
client.LoginAsync(_mainActivity,
MobileServiceAuthenticationProvider.Google, "myjobdiary", new Dictionary<string, string>
{
{ "access_type", "offline" }
});
Все работает нормально, пользователь авторизован и токен сохранен с использованием метода ..
public void StoreTokenInSecureStore(MobileServiceUser user)
{
var account = new Account(user.UserId);
account.Properties.Add("token", user.MobileServiceAuthenticationToken);
_accountStore.Save(account, "myjobdiary");
}
Теперь я перезагружаю свое приложение и получаю пользователя изхранилище учетных записей, используя метод ..
public MobileServiceUser RetrieveTokenFromSecureStore()
{
var accounts = _accountStore.FindAccountsForService("myjobdiary");
if (accounts != null)
{
foreach (var acct in accounts)
{
if (acct.Properties.TryGetValue("token", out string token))
{
return new MobileServiceUser(acct.Username)
{
MobileServiceAuthenticationToken = token
};
}
}
}
return null;
}
Полученный пользователь настроен на использование MobileServiceClient.Теперь я хочу обновить токен с помощью метода MobileServiceClient.RefreshUserAsync.Исключение 'Не удалось обновить с ошибкой 403 Forbidden.Токен обновления был отозван или срок его действия истек.произошло. мобильных приложений с лазурью, токены обновления