【问题标题】:Refresh Token & Logout using azure-mobile-apps cordova client使用 azure-mobile-apps cordova 客户端刷新令牌和注销
【发布时间】:2016-12-15 09:58:56
【问题描述】:

我正在使用 azure-mobile-apps cordova 客户端开发 mobile app。我按照https://cgillum.tech/2016/08/10/app-service-auth-and-azure-ad-b2c-part-2/ 获取刷新令牌。

我在标头中发送 id_token。

var token = window.localStorage.getItem("token");
var appUrl = https://Mobile****.azurewebsites.net;
var url = appUrl + "/.auth/refresh";
$http.get(url, {
    headers: {
        'X-ZUMO-AUTH': token
    }
})
.then(function(response) {
    console.log(response);
});

响应:401 未经授权。 IDX10500:签名验证失败。 无法解析 SecurityKeyIdentifier...

我在资源浏览器和租户 -> 应用程序 -> 密钥中比较了我的密钥。

两者都是一样的。 我也想问一下注销的问题,我们可以在这个端点/.auth/logout发送和上面一样的吗。

【问题讨论】:

  • 嗨@devangi,有什么更新吗?
  • 您好,抱歉耽搁了。是的,我想问一下这些令牌(mobileServiceAuthenticationToken、id_token 和 refresh_token)?过期时间、id_token 和 refresh_token 可通过 /.auth/me 端点获得。我的观察是,在 1 小时内,即使您不使用任何 mobileServiceAuthenticationToken(使用 /.auth/refresh),但过期时间将相同(在 /.auth/me)。一个小时后,如果您使用旧令牌调用 /.auth/refresh,它将给出 500 内部服务器错误。那么 mobileServiceAuthentication 令牌、id_token 和 refresh_token 的生命周期是多少?
  • 关于如何保持用户永久登录可以参考this thread
  • 嗨,我的基本理解是mobileServiceAuthenticationToken 在 1 小时到期。要刷新此令牌,我们将调用 /.auth/refresh。从 B2C 获取更新的令牌是否足够,并且用户将存活更长时间,例如 1 天?我们可以从 /.auth/me 交叉验证更新的过期时间。我说的对吗?

标签: javascript cordova azure azure-mobile-services azure-ad-b2c


【解决方案1】:

要让/.auth/refresh 工作,就像前面帖子中提到的@mattchenderson,请确保client.currentUser.mobileServiceAuthenticationTokenX-ZUMO-AUTH 标头中传递。

注销可以使用build-in SDK的注销功能。 请尝试使用以下代码将用户从移动应用程序中注销。

client.logout().then(function () {
    window.cookies.clear(function() {
        $state.go('index');
    });        
});

注意:网页视图已将登录信息存储在cookies中,下次您通过身份验证提供程序登录时,浏览器会自动读取cookies并完成登录流程。因此,请确保在注销时清除 cookie。我使用Phonegap-Cookies-Plugin 来完成这项工作。请注意,它适用于 PhoneGap 和 Cordova。

【讨论】:

  • 感谢您的回复,注销和刷新令牌都已解决。
【解决方案2】:

X-ZUMO-AUTH 标头中提交的令牌应始终是应用服务令牌,而不是 AAD ID 令牌。此令牌将使用来自Mobile Apps SDK 的 client.login() 方法之一获得。您可以从客户端对象(通过client.currentUser.mobileServiceAuthenticationToken)访问此令牌。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-25
    • 2017-10-27
    • 2018-12-08
    • 2017-03-07
    • 2017-06-27
    • 2020-08-27
    相关资源
    最近更新 更多