将 Flutter 应用 facebook 身份验证与 Keycloak 服务集成

Orr*_*ini 5 java facebook facebook-login keycloak flutter

我有一个Flutter应用程序,它使用Keycloak作为身份验证服务。目前我只允许电子邮件+密码登录,我想为用户添加使用 Facebook 登录的选项。

我的问题是如何将 facebook 登录与我的 Keycloak 服务相关联,以便我的服务管理访问令牌。

我发现这个非常好的用于 flutter facebook 登录的库:https : //pub.dev/packages/flutter_facebook_login

我在应用程序和 Keycloak 服务之间使用 Java Spring Web 服务代理。我正在org.keycloak:keycloak-admin-client:6.0.1为 Keycloak 客户端使用库。

我想了解应该发生的控制流,以便用户可以登录他的 Facebook 帐户,然后我的 Keycloak 服务将管理它的访问令牌,以便我可以在我的其他服务中对用户进行身份验证,这些服务都依赖于Keycloak 验证访问令牌的事实。

任何建议都会有所帮助,谢谢!

Jim*_*oyo 0

Keycloak 有一个内置的 Facebook 身份提供商,可以非常轻松地做到这一点。以下是 Keycloak 文档的链接,其中包含设置步骤:\n https://www.keycloak.org/docs/6.0/server_admin/#facebook

\n\n

以下是文档中列出的步骤(复制并稍加修改,因为我没有在此处发布任何图片)。

\n\n

*** 来自 KEYCLOAK 文档 **

\n\n

您必须完成许多步骤才能启用 Facebook 登录。首先,转到“身份提供商”左侧菜单项,然后从“添加提供商”下拉列表中选择 Facebook。这将带您进入“添加身份提供商”页面。

\n\n

您还不能单击“保存”,因为您需要从 Facebook 获取客户端 ID 和客户端密钥。您\xe2\x80\x99 在此页面中需要的一项数据是重定向 URI。当您将 Keycloak 注册为 Facebook 客户端时,您\xe2\x80\x99 必须将其提供给 Facebook,因此请将此 URI 复制到剪贴板。

\n\n

要启用 Facebook 登录,您首先必须在 Facebook 开发者控制台中创建一个项目和一个客户端。

\n\n

一旦您\xe2\x80\x99登录到控制台,屏幕右上角会出现一个下拉菜单,显示“我的应用程序”。选择添加新应用程序菜单项。

\n\n

选择一个平台。单击“跳过并创建应用程序 ID”按钮。

\n\n

电子邮件地址和应用程序类别是必填字段。完成此操作后,您将进入该应用程序的仪表板。单击“设置”左侧菜单项。

\n\n

单击本页末尾的“+ 添加平台”按钮,然后选择“网站”图标。将重定向 URI 从 Keycloak 添加身份提供商页面复制并粘贴到 Facebook 网站设置块的站点 URL 中。

\n\n

此后,需要公开 Facebook 应用程序。单击“App Review”左侧菜单项并将按钮切换为“Yes”。

\n\n

您还需要从此页面获取应用程序 ID 和应用程序密钥,以便您可以将它们输入到 Keycloak 添加身份提供商页面。要获取此信息,请单击仪表板左侧菜单项,然后单击应用程序密钥下的显示。返回 Keycloak 并指定这些项目,最后保存您的 Facebook 身份提供商。

\n\n

Facebook 的“添加身份提供商”页面上需要注意的一个配置选项是“默认范围”字段。此字段允许您手动指定用户在通过此提供程序进行身份验证时必须授权的范围。有关范围的完整列表,请查看https://developers.facebook.com/docs/graph-api。默认情况下,Keycloak 使用以下范围:电子邮件。

\n