Xamarin表单+ IdentityServer +外部提供程序(Facebook / Google)

时间:2019-07-15 14:55:37

标签: facebook xamarin oauth-2.0 identityserver4 google-authentication

我有一个ASP.NET Core Web App和ASP.NET Core Web API,目前正在使用IdentityServer4。

我正在添加Xamarin Forms应用程序(Android + iOS),但找不到使用Facebook和/或Google以及IdentityServer的Xamarin Forms应用程序的任何示例。

我遇到的许多示例都使用WebView,我不想使用它们,并且想要使用Native App(Facebook / Google)或Mobile Browser(Chrome / Safari)进行身份验证(取决于是否Facebook / Google应用已安装在用户设备上。

对于移动设备上的用户流量,我也感到困惑,即:

  • 用户打开应用
  • 用户点击Facebook登录名
  • 应用程序通过IdentityServer将用户重定向到Facebook移动网站 (Safari / Chrome)
  • 用户登录Facebook /允许访问我的应用
  • 然后将用户重定向回身份服务器
  • 身份服务器登录/注册用户
  • 身份服务器然后重新打开我的移动应用传递令牌
  • 然后我的应用程序保存令牌并将其用于以后的所有api调用

我一直在使用信息并将我的系统基于eShopOnContainers enterprise reference app,并使用这种微服务类型的体系结构,唯一缺少的(出于我的目的)是社交登录,否则该体系结构正是我们正在建造的东西的类型。

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

如果有任何价值,我们的解决方案将使所有内容都通过我们的身份服务器。用户可以选择直接从登录页面使用Google或LinkedIn进行登录,也可以通过自定义策略将其定向到其雇主的IDP。

这里的好处是您的Xamarin应用无需执行任何特殊操作,因为您的identityserver4实现可处理多个不同的社交登录提供程序。

这几乎完全是您在问题中提出的内容,所以我想我的答案是-是的,我认为您的想法是正确的。

也可能值得看一下这个示例:https://github.com/IdentityModel/IdentityModel.OidcClient.Samples/tree/master/XamarinForms