我正在使用 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
发送与上述相同的内容。
答案 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。