我正在为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 方法吗?如果是,我想念的是什么?
答案 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));