授权码流程¶
流程步骤¶
在这条链路里,你的应用把登录委托给 OpenASA 自身。
1)将用户重定向到 OpenASA 的 authorize 入口¶
你的客户端把浏览器导向 oauth agreement 定义的 OpenASA authorize 能力入口。
常见参数包括:
response_type=codeclient_idredirect_uriscopestate
2)在你的回调地址接收授权码¶
当用户完成登录与授权后,OpenASA 会把浏览器重定向回你的 redirect_uri,并携带:
codestate
3)用授权码换取 OpenASA 发出的令牌¶
你的后端调用 OpenASA 的 token 能力入口,取得:
access_tokenrefresh_tokenid_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 用户资料