Azure移动应用程序自定义身份验证和MobileServiceClient

时间:2018-11-20 19:07:18

标签: xamarin.forms azure-mobile-services custom-authentication azure-authentication mobileserviceclient

我正在为Azure移动应用(https://www.newventuresoftware.com/blog/custom-authentication-with-azure-mobile-apps)进行自定义身份验证

我创建了 AuthControll ,它接受用户名和密码并创建令牌。当我调用 MobileServiceClient.InvokeApiAsync(“ Auth”,loginInfoDictionary)时,我成功接收到用户名和令牌。我用收到的令牌创建了新的MobileServiceUser(用户名),并将其设置为 MobileSeviceClient.CurrentUser 。但是,当我通过需要授权的方法调用 MobileServiceClient.InvokeApi 时,它告诉我我未经授权。

那么我应该如何处理收到的令牌?我可以使用具有这种授权类型的 MobileServiceClient.InvokeApiAsync MobileServiceClient.GetTable 方法吗?如果是,我想念的是什么?

1 个答案:

答案 0 :(得分:0)

我在服务器端的解决方案中发现了一个问题。创建令牌时,我忘记指定我的URL站点。像这样

var signingKey = Environment.GetEnvironmentVariable("WEBSITE_AUTH_SIGNING_KEY");
var audience = "https://TheSiteIForgotToSpecify.azurewebsites.net/"; // audience must match the url of the site
var issuer = "https://TheSiteIForgotToSpecify.azurewebsites.net/"; // audience must match the url of the site
JwtSecurityToken token = AppServiceLoginHandler.CreateToken(
    claims, signingKey, audience, issuer, TimeSpan.FromHours(24));