Azure移动应用程序参与Xamarin认证

本文关键字:Xamarin 认证 移动 应用程序 Azure | 更新日期: 2023-09-27 18:03:51

我使用Xamarin Forms认证与Auth0。后端服务是Azure移动应用程序。我试图通过以下方式将授权令牌传递回服务:

            MobileServiceUser usr = new MobileServiceUser(User.UserName);
            usr.MobileServiceAuthenticationToken = User.jwt;
            App.client.CurrentUser = usr;

我还没有在我的Azure应用程序中处理这个问题。当我像上面那样传递用户时,我在Xamarin项目中遇到以下错误:

原因:md52ce486a14f4bcd95899665e9d932190b。Microsoft.WindowsAzure.MobileServices.MobileServiceInvalidOperationException:请求不能被完成。(未经授权)

实际上,我已经在控制器中声明了匿名访问:

[AuthorizeLevel(AuthorizationLevel.Anonymous)]
public class MovementController : TableController<MoveHeaderDto>

我应该如何处理MobileServiceUser在我的Azure移动应用程序?

Azure移动应用程序参与Xamarin认证

我认为您看到的401是因为令牌不是预期的格式,无法验证。

MobileServiceAuthenticationToken属性是由移动应用网关本身发布的JWT。您需要调用loginAsync()方法重载,该方法接受一个额外的令牌参数,传入从Auth0获得的JWT。

loginAsync方法将设置MobileServiceUser,这将附加到对您的服务的调用。请注意,对于Xamarin表单,您需要有一个自定义呈现器,以便使用平台的正确视图元素。这与本文对ADAL库所做的类似。