注册与登录
注册与登录是终端用户进行认证 (Authentication) 和授权 (Authorization) 访问客户端应用程序的核心交互流程。作为一个基于 OIDC 的集中式 CIAM 平台,Logto 为用户在多个客户端应用和平台之间提供统一的登录体验。
用户流程
在典型的 OIDC 认证 (Authentication) 流程中,用户首先打开客户端应用。客户端应用向 Logto OIDC 发行者 (Issuer) 发送 授权请求 (Authorization request)。如果用户没有活动会话,Logto 会引导用户进入 Logto 托管的登录体验页面。用户与 Logto 体验页面交互,并通过提供必要的凭证完成认证 (Authentication)。一旦用户成功认证 (Authentication),Logto 会将用户重定向回客户端应用,并携带 授权码 (Authorization code)。客户端应用随后使用授权码向 Logto OIDC 发行者 (Issuer) 发送 令牌请求 (Token request) 以获取令牌。
用户交互
每当客户端应用发起授权请求 (Authorization request) 时,都会为每次用户交互创建一个交互会话。该会话在多个客户端应用之间集中管理用户交互状态,使 Logto 能够提供一致的登录体验。当用户在不同客户端应用之间切换时,交互会话保持一致,维护用户的认证 (Authentication) 状态,减少跨平台重复登录的需求。一旦交互会话建立,用户将被提示登录 Logto。
Logto 中的体验应用是一个专用的托管应用,用于实现登录体验。当用户需要认证 (Authentication) 时,他们会被引导至体验应用,在此完成登录并与 Logto 交互。体验应用利用活动交互会话来跟踪和支持用户的交互进度。
为支持和控制这一用户流程,Logto 提供了一组基于会话的体验 API (Experience API)。这些 API 使体验应用能够通过实时更新和访问交互会话状态,处理多种用户身份识别和验证方式。
一旦用户满足所有验证和校验要求,交互会话将以结果提交至 OIDC 发行者 (Issuer) 结束,此时用户已完全认证 (Authentication) 并完成授权 (Authorization),安全登录流程最终完成。
体验页面仅设计为通过认证 (Authentication) 流程访问。为防止搜索引擎索引这些页面并避免直接访问,Logto 会自动在体验 HTML 页面中添加 <meta name="robots" content="noindex, nofollow" />。
登录体验自定义
Logto 为各种业务需求提供灵活且可定制的用户体验,包括自定义品牌、用户界面和用户交互流程。体验应用可以根据客户端应用的品牌和安全需求进行定制。
常见问题
按应用自定义登录方式或品牌
对于需要不同登录界面的应用或组织,Logto 支持应用特定品牌和组织特定品牌自定义。
如果你需要根据用户类型或站点提供不同的登录方式,只需使用认证 (Authentication) 参数(如 first_screen 和 direct_sign_in)将用户路由到带有定制登录选项的终端用户页面。
限制邮箱域名 / IP 地址 / 地区
对于基于属性的访问控制,例如根据邮箱域名、IP 地址或地区限制登录,你可以使用 Logto 的自定义令牌声明 (Custom token claims)功能,根据用户属性拒绝或允许授权请求 (Authorization request)。
相关资源
为什么你应该弃用资源所有者密码凭证 (ROPC) 授权类型
为什么你应该使用授权码流程 (Authorization code flow) 而不是隐式流程 (Implicit flow)?
令牌 (Token) 认证 (Authentication) 与会话 (Session) 认证 (Authentication) 对比