跳到正文

OAuth 第三方登录

OAuth

高级通用

OAuth 第三方登录是让用户通过已有平台的授权流程进入你的产品,并由你的服务建立本地登录状态的方式。它解决用户另设密码的麻烦,例如让用户用已有账号登录新做的 AI 工具。

你可能会说:「我想让用户用已有平台的账号登录网站,不用再注册一套密码,该怎么做?」

读之前建议先了解(这是一个高级概念)

动手看看

登录请求用户浏览器AI 工具第三方平台
1

用户点击第三方登录。AI 工具不让用户再设密码,而是准备把浏览器引导到第三方平台。

要点

  1. 1

    用户先去授权平台确认

    你的网站把用户带到第三方平台,由对方完成账号验证并让用户确认授权。这样你的服务不必接触用户在第三方平台的密码,也能得到继续处理登录所需的结果。

  2. 2

    服务端换取并核对身份

    常见做法是让服务端用回调收到的授权码换取凭证,再按平台支持的方式获取或验证用户身份。回调还要核对发起登录时保存的状态,避免把别人的登录结果接到当前用户身上。

  3. 3

    本地账号和会话仍由你管理

    确认第三方身份后,我们通常用平台标识和其稳定用户标识查找或创建本地账号,再建立自己产品的会话。用户能访问哪些数据和功能,仍由你的产品决定,不能直接拿第三方凭证当本站登录状态。

容易混淆的地方

OAuth 本身主要解决授权:用户允许一个应用获得限定的访问能力;它不等于一份可靠的身份说明。第三方登录会借用这套流程,但确认身份还要依赖平台提供的身份机制,例如 OpenID Connect 或受保护的用户信息接口。它也不等于权限控制:登录确认的是谁来了,能否进入管理后台仍要由你的产品判断。

什么时候用

适合用

  • 你在做面向普通用户的 AI 工具,希望新用户用已有平台账号快速进入,同时仍保留自己的用户资料和使用记录。
  • 你的网站还需要在用户同意后读取第三方平台的特定数据,可以把登录与所需授权放进经过设计的流程。

不适合用

  • 只是想让用户打开第三方平台的页面,不涉及识别用户或读取数据时,放一个普通链接就够了。
  • 公司内部系统只允许员工用组织账号进入时,先看组织现有的单点登录方案,而不是默认接入面向公众的第三方登录。
  • 产品只有无需保存个人数据的公开页面时,不必为了访问页面增加登录;直接开放浏览更省事。

练一练

你给 AI 笔记工具加了第三方登录。用户完成授权并返回网站后,怎样让他持续访问自己保存的笔记?

让 AI 帮你做

请为我的网站设计 OAuth 第三方登录流程:使用授权码流程,说明回调状态核对、第三方身份验证、本地账号关联和本站会话建立方式;区分第三方访问凭证与本站登录状态,并列出需要我向平台确认的接口能力。

接下来学什么