我有一个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始终为空.
我的Azure后台是用.net编写的一个新的移动Web应用程序.除了这个认证问题,它的所有功能都很棒.我找不到在服务器端或客户端方面解决这个问题的正确方法. PLS.请注意,我的问题是关于Azure移动应用程序的新方式,而不是旧的经典版本.
你能帮助我吗任何示例代码或文档受到热烈欢迎.
提前致谢!
解决方法
太久了评论
如果您查看了GetIdentityAsync
的实现,您将看到以下内容:
>它检查用户是否通过身份验证(您表示用户已通过身份验证,因此这里没有问题)
>从config中读取“EMA_RuntimeUrl”(它不为null,因为那会得到一个异常)
>它检查提供者的令牌是否有效.如果不是,则返回null.
我相信这是你遇到的问题.这个问题的快速搜索带给你this的问题.
那么您是否在应用程序属性中的azure门户中手动应用程序中创建了一个EMA_RuntimeUrl,并分配给Gateway地址?