您好我试图在使用Azure AD B2C进行身份验证的Xamarin应用中获取名称和地址等用户信息。
到目前为止,我的身份验证工作正常
SELECT s.*,
(SELECT GROUP_CONCAT(u.user_id SEPARATOR ', ')
FROM users u
WHERE u.sale_id = s.id) AS users
FROM sales s
但是我想知道如何获得用户的姓名和生日。我还没有找到明确的行动方案。
答案 0 :(得分:3)
您没有使用MobileService SDK明确获取此信息。查看有关App Service Authentication / Authorization here的完整文档。
您将达到提及的程度:
您的应用还可以通过以下方式获取其他用户详细信息 应用程序的
/.auth/me
端点上的HTTP GET。有效的令牌 请求中包含的内容将返回JSON有效负载 有关正在使用的提供商的详细信息,即基础提供商 令牌和其他一些用户信息。移动应用服务器SDK 提供帮助方法来处理这些数据。
因此,在您的Xamarin中,在用户成功进行身份验证后,您必须向/.auth/me
显式发出HTTP GET请求并解析结果以获取有关已登录用户的所有信息。
不确定如何在Xamarin中执行此操作,但以下是如何在C#UWP(通用Windows平台)中执行此操作:
var url = App.MobileService.MobileAppUri + "/.auth/me";
var clent = new Windows.Web.Http.HttpClient();
clent.DefaultRequestHeaders.Add("X-ZUMO-AUTH", this.user.MobileServiceAuthenticationToken);
var userData = await clent.GetAsync(new Uri(url));
在此代码执行时,userData varibale将是一个包含所有用户声明的JSON srting。