社交登录
社交登录是一种广泛使用的认证 (Authentication) 方法,允许用户使用他们现有的社交媒体账户(如 Google、Facebook、Twitter 和 LinkedIn)进行登录和注册。
社交登录的优势:
- 简化的注册流程:社交登录让用户只需点击一次即可注册或登录,无需创建新账户或记住另一个密码。这减少了摩擦并提升了用户参与度。
- 提升信任与安全性:通过利用 Google 或 Facebook 等成熟、可信的平台,用户对你的应用更有信心。
- 用户数据丰富:社交登录使你能够从社交平台收集更多的用户资料信息,如姓名、电子邮件地址、头像等。
实现社交登录
-
配置你的社交连接器:
前往 控制台 > 连接器 > 社交连接器。点击“添加社交连接器”按钮,找到你想要添加的社交连接器(如 Google 或 Github)。详细操作请参考 社交连接器。 -
添加社交登录按钮:
默认情况下,你新添加的社交连接器不会显示在终端用户的登录页面上。要在登录页面添加社交登录按钮,需要在登录体验设置中启用该社交连接器。前往 控制台 > 登录体验 > 注册和登录。点击“添加社交连接器”按钮,将社交登录按钮集成到注册和登录页面。你可以通过拖拽来调整它们在界面上的顺序。
-
设置账户关联选项:
对于使用 社交身份 注册的新用户,Logto 支持将其社交账户与 Logto 系统内现有的邮箱或手机号账户进行关联。默认情况下,在社交注册过程中会显示相关的 账户关联 页面,允许用户将社交账户关联到现有账户或创建新账户。为了简化流程,你可以在登录体验设置中启用 自动账户关联 选项。如果邮箱或手机号匹配,将自动把社交账户关联到现有账户。
-
保存更改:
仔细检查你的更改并保存,以应用配置。
社交登录的用户体验
通过社交登录,Logto 中的注册和登录流程对用户来说更加流畅。
- 社交登录:用户点击登录页面上的社交登录按钮。
- 跳转:用户被重定向到社交身份提供商的认证 (Authentication) 页面。
- 社交认证 (Authentication):用户输入社交凭证并在社交提供商处完成认证 (Authentication)。如果用户已登录社交提供商,可能会自动认证 (Authentication)。如果检测到多个登录会话,用户可能需要选择正确的账户(如多个 Google 账户)。
备注:
Google “prompt” 参数可在 Google 连接器中设置,允许你自定义 Google 登录时的账户选择和用户授权页面体验。
- 返回 Logto:认证 (Authentication) 成功后,社交提供商将用户重定向回 Logto 登录页面,并携带认证 (Authentication) 数据。
- 社交身份校验:Logto 校验社交认证 (Authentication) 数据和用户身份。如果没有与该社交身份关联的用户账户,将自动创建新账户。
- 用户认证 (Authentication):Logto 认证 (Authentication) 用户并跳转回客户端应用,完成认证 (Authentication) 流程。
账户关联
如上所述,Logto 允许用户将社交账户与 Logto 系统内现有的邮箱或手机号账户进行关联。这个过程对于在不同认证 (Authentication) 方法和身份提供商之间维护统一的用户账户至关重要。
-
新账户创建: 当用户使用 社交身份 登录且该身份在 Logto 系统中不存在,且提供的邮箱或手机号未与任何现有账户匹配时,Logto 会直接创建新账户。
-
现有账户关联: 如果社交身份提供的邮箱或手机号已与 Logto 中的现有账户关联,我们提供灵活的账户关联流程。
-
自动账户关联:如果在 登录体验 设置中启用了“自动账户关联”选项,Logto 会根据邮箱或手机号自动将社交账户关联到现有账户。用户不会被提示关联账户,且会直接登录到现有账户。社交账户将被关联,用户以后可以通过任一方式登录。
-
手动账户关联:如果未启用“自动账户关联”选项,用户在登录过程中会被提示将社交账户关联到现有账户。他们可以选择关联账户或创建新账户。
-
如果在社交注册过程中,提供的邮箱或手机号与现有账户匹配且用户选择不关联账户,则该邮箱或手机号不会同步到 Logto 的新账户。这确保了所有用户账户的邮箱和手机号唯一性。
如果邮箱或手机号是必填注册标识符,用户在注册过程中会被要求提供另一个邮箱或手机号。详见 收集额外用户资料。
收集额外用户资料
在社交注册过程中,根据你配置的必填注册标识符(邮箱地址、手机号 和 用户名)设置,用户可能需要在通过社交提供商认证 (Authentication) 后,补充额外的已验证信息以完成注册或登录流程。
例如,邮箱地址 和 用户名 被设置为必填注册标识符:
-
使用提供已验证邮箱地址的社交身份注册
如果社交身份提供了已验证的邮箱地址,该邮箱会同步到用户资料,并提示用户输入用户名以完成注册。
-
使用未提供已验证邮箱地址的社交身份注册
如果社交身份未提供已验证邮箱地址,用户在注册过程中会被要求输入邮箱地址,并需通过输入验证码进行验证。
-
使用提供已注册邮箱地址的社交身份注册
如果社交身份提供的邮箱地址已在 Logto 系统中注册,用户会被提示将社交账户关联到现有账户或创建新账户。如果选择创建新账户,则需输入新的邮箱地址并进行验证。
Google One-tap
Logto 也支持 Google 连接器的 Google One-tap 登录方式,让用户一键登录。该功能进一步简化了登录流程,无需跳转到 Google 认证 (Authentication) 页面。
要启用 Google One-tap 登录,请按照 Google 连接器 设置中的说明操作。启用后,用户在登录页面会看到“使用 Google 登录”弹窗,点击后会自动用 Google 账户认证 (Authentication) 并跳转回应用。
关联或解绑社交账户
首次社交登录后,用户可以通过账户设置管理已连接的社交账户。这允许用户将更多社交账户关联到现有资料,或移除不再使用的社交连接。
用户可通过自助账户中心访问这些功能,灵活地:
- 关联新社交账户:将更多社交提供商连接到同一用户资料
- 解绑现有社交账户:移除社交连接,同时保留其他方式的访问权限
- 查看已连接账户:查看所有已关联的社交身份
了解如何实现账户管理功能,请参阅 账户设置 文档。
存储令牌并调用第三方 API
你可以为支持的社交连接器选择性启用第三方令牌存储,这样在用户认证 (Authentication) 并授权后,提供商颁发的访问令牌 (Access token) 和刷新令牌 (Refresh token) 会安全地存储在 Logto 的密钥库中。你的应用(通过 Account API)随后可以检索并使用这些令牌,代表用户调用提供商 API(如让你的应用向 Google 日历添加事件),无需再次社交认证 (Authentication)。详见 第三方令牌存储 的配置说明。
常见问题
为什么用社交注册后邮箱或手机号没有同步到资料?
在 Logto 中,邮箱地址和手机号可作为登录标识符,用于唯一标识用户。只有已验证的邮箱和手机号才会作为标识符被接受。如果社交身份未提供 email_verified 或 phone_number_verified 声明,则邮箱或手机号不会同步到用户资料。你仍然可以在用户资料的社交身份数据中找到它们。
支持未验证邮箱或手机号作为用户资料的功能即将上线。
相关资源
社交登录体验通过 6 项配置最大化 Google 登录转化率