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

Web*_*ere 8 facebook google-authentication oauth-2.0 xamarin identityserver4

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

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

我遇到的很多示例都使用 WebViews,我不想使用它,而是想使用本机应用程序(Facebook/Google)或移动浏览器(Chrome/Safari)来进行身份验证(取决于 Facebook/Google应用程序安装在用户设备上)。

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

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

我一直在使用这些信息并将我的系统基于eShopOnContainers 企业参考应用程序并使用这种微服务类型架构,唯一缺少的东西(就我而言)是社交登录,否则这种架构正是这种类型的东西我们正在建设。

mac*_*kie 5

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

这里的美妙之处在于你的 Xamarin 应用程序不需要做任何特殊的事情,因为处理多个不同社交登录提供程序的复杂性由你的identityserver4实现来处理。

这几乎正​​是您在问题中提出的内容,所以我想我的答案是 - 是的,您的想法在我看来是正确的。

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

  • @Webcognoscere 正是如此,是的。以及基于客户特定配置的任何其他 OIDC 提供商。 (2认同)