设置js azure app服务自定义登录身份验证

时间:2017-05-07 06:47:00

标签: javascript node.js api azure authentication

我在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 欢迎任何评论

0 个答案:

没有答案