登录
解决什么问题
Section titled “解决什么问题”应用需要把“宿主凭据 + Client Type”转换为可信的 IamPrincipal,并得到后续请求使用的不透明 Token。登录是 IAM 认证链的起点。
- LoginRequest:必填
username、password、clientType;还可携带clientInstance等审计元数据; - AuthenticationResult:
(accessToken, sessionId, expiresAt, principal); - 流程:
POST /iam/auth/login→ IAM Client Type 校验 →IdentityAuthenticator→ 宿主身份服务 →IamPrincipal→ Token / Session。
| 项目 | 内容 |
|---|---|
| Method | POST |
| Path | /iam/auth/login |
| Bearer Token | 不需要 |
| 成功 | HTTP 200 |
| 失败 | HTTP 401 |
请求体示例:
{ "username": "alice", "password": "demo-pass", "clientType": "WEB"}成功时返回:
accessToken:后续请求使用的不透明 Token;sessionId:当前 Session ID;expiresAt:Token 过期时间;principal:当前IamPrincipal。
后续受保护请求携带:
Authorization: Bearer <accessToken>alice / demo-pass 只是 muer-example 的演示身份。生产系统继续使用自己的用户表、密码校验或企业身份源。
LoginRequest:https://github.com/wbh123/iam/blob/main/muer-authentication/src/main/java/io/github/muer/authentication/LoginRequest.javaIdentityAuthenticator:https://github.com/wbh123/iam/blob/main/muer-authentication/src/main/java/io/github/muer/authentication/IdentityAuthenticator.java- OpenAPI:https://github.com/wbh123/iam/blob/main/muer-management-web/src/main/resources/openapi/iam.yaml