参与 Xamarin 身份验证的 Azure 移动应用程序

Azure Mobile App engaging Xamarin Authentication

我正在使用 Xamarin Forms 身份验证和 Auth0。后端服务是 Azure Mobile App。我正在尝试通过以下方式将授权令牌传回服务:

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

我尚未在我的 Azure 应用程序中处理此问题。当我按上述方式传递用户时,我在 Xamarin 项目中遇到以下错误:

Caused by: md52ce486a14f4bcd95899665e9d932190b.JavaProxyThrowable: Microsoft.WindowsAzure.MobileServices.MobileServiceInvalidOperationException: The request could not be completed. (Unauthorized)

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

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

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

我相信您看到的 401 是因为令牌不是预期的格式并且无法验证。

MobileServiceAuthenticationToken属性是移动应用网关自己发布的JWT。您将需要调用带有额外令牌参数的 loginAsync() 方法重载,传入您从 Auth0 获得的 JWT。

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