我有一个 Xamarin.Forms 应用程序,我想基于 FaceBook 和 Azure 实现其身份验证功能。身份验证本身有效,但我还没有找到从中获取基本用户信息的方法(姓名、电子邮件...)
var user = await DependencyService.Get<IMobileClient>()
.LoginAsync(MobileServiceAuthenticationProvider.Facebook);
在服务器端
var mobileAppUser = (MobileAppUser)User;
var facebookCredentials =
user.GetIdentityAsync<FacebookCredentials>().Result;
mobileAppUser 存在,但 facebookCredentials 始终为 null。
我在 Azure 上的后端是一个用 .net 编写的新移动 Web 应用程序。除了这个身份验证问题之外,它的所有功能都运行良好。我找不到在服务器端或客户端解决此问题的正确方法。请。请注意,我的问题是关于 Azure 移动应用程序的新方式,而不是旧的经典方式。
你愿意帮助我吗?热烈欢迎任何示例代码或文档。
提前致谢!
最佳答案
评论太长
如果你检查 GetIdentityAsync
的实现,您将看到以下内容:
- 它检查用户是否已通过身份验证(您说过用户已通过身份验证,所以这里没有问题)
- 从配置中读取
“EMA_RuntimeUrl”
(它不为空,因为这样你会得到一个异常) - 它检查来自提供商的 token 是否有效。如果不是,则返回
null
。
我相信这就是您遇到的问题。快速搜索此问题,您会看到 this所以问题。
那么,您是否在 Azure 门户的应用程序属性中的移动应用中手动创建了 EMA_RuntimeUrl,并将其分配给网关地址?
关于c# - 如何在Azure移动Web应用程序中获取基本用户信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33346179/