跳转至

授权码流程

流程步骤

在这条链路里,你的应用把登录委托给 OpenASA 自身。

1)将用户重定向到 OpenASA 的 authorize 入口

你的客户端把浏览器导向 oauth agreement 定义的 OpenASA authorize 能力入口。

常见参数包括:

  • response_type=code
  • client_id
  • redirect_uri
  • scope
  • state

2)在你的回调地址接收授权码

当用户完成登录与授权后,OpenASA 会把浏览器重定向回你的 redirect_uri,并携带:

  • code
  • state

3)用授权码换取 OpenASA 发出的令牌

你的后端调用 OpenASA 的 token 能力入口,取得:

  • access_token
  • refresh_token
  • id_token(如适用)
  • expires_in

4)从 OpenASA 读取用户资料

你的后端或受信任客户端调用 OpenASA 的 userinfo 能力入口,并把返回的 subject 映射到你自己的本地用户模型。

时序

sequenceDiagram
  participant U as 用户/浏览器
  participant C as Client App
  participant O as OpenASA OAuth Provider

  U->>C: 点击登录
  C-->>U: 跳转到 OpenASA authorize
  U->>O: 登录 + 授权确认
  O-->>U: 带 code/state 回跳到客户端回调
  U->>C: 打开 redirect_uri
  C->>O: token 换取
  O-->>C: access_token / refresh_token / id_token
  C->>O: userinfo
  O-->>C: OpenASA 用户资料