我在2年前开始使用node.js在azure移动服务中进行自定义身份验证,以便在我的jquery / cordova appery.io应用程序中使用它。我有一个包含用户,密码等的数据库和node.js后端的登录api,它生成一个有效的jwt,如下所示:
http://www.thejoyofcode.com/Exploring_custom_identity_in_Mobile_Services_Day_12_.aspx
http://chrisrisner.com/Version-1-of-the-Mobile-Services-JWT-token-has-been-deprecated
但现在我已经迁移到azure app服务,不知道如何使用javascript实现自定义验证。
以上示例:
“ISS”: “瓮:微软:视窗-天蓝:谟”, “版本”:2, “AUD”:AUD,
但我已经读过“aud”和“iss”必须是我的azure网站和“sub”我自己的userId,才能在我的自定义身份验证中生成一个有效的jwt,以便在azure中使用它。是不是?
https://shellmonger.com/2016/04/08/30-days-of-zumo-v2-azure-mobile-apps-day-5-custom-authentication/
重要的是令牌。使用Azure Mobile App的第三方令牌有一些要求: 它必须遵循Json Web Token格式 用户标识必须位于主题(子)字段中 必须知道并配置受众(aud)和发行者(iss)
我使用ajax帖子调用我的登录API并获取有效的JWT令牌(http://jwt.io),但我不知道登录和使用azure服务的正确过程,因为我不知道在我的应用程序上使用它的正确方法。我已将MobileServices.Web.min.js更改为应用程序中的azure-mobile-apps-client.js。 https://github.com/Azure/azure-mobile-apps-js-client
我可以使用在azure node.js中创建的jwt令牌,还是将其交换为会话令牌,并使用JS SDK的client.login()方法?
编辑:
我看到光再次添加到ajax POST
headers: {'X-ZUMO-AUTH': usuarioToken},
所以我的“仅经过身份验证的用户”api再次使用旧的MobileServices.Web.min.js!它也适用于invokeApi方法:
var mobileClient = new WindowsAzure.MobileServiceClient(urlApp,keyApp);
mobileClient.currentUser = {
userId: myCustomUserId,
mobileServiceAuthenticationToken: myCustomToken
};
mobileClient
.invokeApi('data', {
method: 'POST',
headers: {'X-ZUMO-AUTH': myCustomToken},
body: JSON.stringify(theData)
}) //end invokeApi
.done(
function (response) {
alert(response);
},
function (error) {
alert("error"));
}
); //end done
生成的mobileClient包含以下数据:
mobileClient= {"applicationUrl":"https://xxx.azure-mobile.net/","applicationKey":"hGhzxxx","version":"ZUMO/1.2 (lang=Web; os=--; os_version=--; arch=--; version=1.2.21003.0)","currentUser":{"userId":"Custom:25F600BB-xxxx-xxxx-xxxx-8329BCCF31D2","mobileServiceAuthenticationToken":"ey__rest of jwt token"},"_serviceFilter":null,"_login":{"_loginState":{"inProcess":false,"cancelCallback":null},"ignoreFilters":true},"push":{"_apns":null,"_gcm":null,"_registrationManager":null}}
我将再次尝试使用新的azure-mobile-apps-client.js 欢迎任何评论