首页 文章

Azure移动应用程序使用Xamarin身份验证

提问于
浏览
2

我在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 回答

  • 2

    我相信你看到的401是因为令牌不是预期的格式而且无法验证 .

    MobileServiceAuthenticationToken 属性是由移动应用程序网关本身发布的JWT . 您将需要调用loginAsync()方法重载,该方法需要一个额外的标记参数,并传入您从Auth0获得的JWT .

    loginAsync方法将设置MobileServiceUser,这将附加到转发到您的服务的调用 . 请注意,对于Xamarin表单,您需要具有自定义渲染器,以便使用该平台的右视图元素 . 这类似于this blog post对ADAL库的作用 .

相关问题