我在Auth0上使用Xamarin Forms身份验证 . 后端服务是Azure移动应用程序 . 我试图通过以下方式将授权令牌传递回服务:
MobileServiceUser usr = new MobileServiceUser(User.UserName);
usr.MobileServiceAuthenticationToken = User.jwt;
App.client.CurrentUser = usr;
我还没有在我的Azure应用程序中处理这个问题 . 当我如上所述传递用户时,我在Xamarin项目中遇到以下错误:
引起:md52ce486a14f4bcd95899665e9d932190b.JavaProxyThrowable:Microsoft.WindowsAzure.MobileServices.MobileServiceInvalidOperationException:无法完成请求 . (未授权)
事实上,我已经在我的控制器中声明了匿名访问:
[AuthorizeLevel(AuthorizationLevel.Anonymous)]
public class MovementController : TableController<MoveHeaderDto>
我如何在Azure Mobile App中处理MobileServiceUser?
1 回答
我相信你看到的401是因为令牌不是预期的格式而且无法验证 .
MobileServiceAuthenticationToken
属性是由移动应用程序网关本身发布的JWT . 您将需要调用loginAsync()方法重载,该方法需要一个额外的标记参数,并传入您从Auth0获得的JWT .loginAsync方法将设置MobileServiceUser,这将附加到转发到您的服务的调用 . 请注意,对于Xamarin表单,您需要具有自定义渲染器,以便使用该平台的右视图元素 . 这类似于this blog post对ADAL库的作用 .