刷新令牌&使用azure-mobile-apps cordova客户端注销

时间:2016-12-15 09:58:56

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

我正在使用 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 ...

我在Resource explorer和Tenant中比较了我的密钥 - > Application - >键。

两者都是一样的。 我还想询问退出,我们是否可以在此端点/.auth/logout发送与上述相同的内容。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

为了让/.auth/refresh正常工作,例如在之前的帖子中提及的@mattchenderson,请确保在client.currentUser.mobileServiceAuthenticationToken标题中传递X-ZUMO-AUTH

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

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

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