API reference

Admin · Session

Sign in, sign out, current user and password change

登录

POST
/api/admin/auth/login

校验凭证并下发会话 cookie(imgyoung_session,HttpOnly,SameSite=Lax,HTTPS 时带 Secure);响应体携带后续写请求要回传的 CSRF 令牌。按客户端地址与用户名限速。

Request Body

application/json
  1. body
name*string

登录名

password*string
Formatpassword

Response Body

会话主体与 CSRF 令牌

application/json
  1. response
user*
csrf_token*string

状态变更请求须以 X-CSRF-Token 头回传的令牌

curl -X POST 'http://localhost:8721/api/admin/auth/login' \  -H 'Content-Type: application/json' \  -d '{  "name": "string",  "password": "pa$$word"}'
{  "user": {    "id": "string",    "name": "string",    "role": "admin",    "must_change_password": true  },  "csrf_token": "string"}

登出

POST
/api/admin/auth/logout

删除服务端会话并清除 cookie,幂等。

Authorization

session
cookieimgyoung_session<token>

登录下发的会话 cookie;状态变更请求须另以 X-CSRF-Token 头回传会话绑定的 CSRF 令牌。

Header Parameters

X-CSRF-Token*string

登录或 GET /api/admin/me 响应里的 csrf_token;缺失或不匹配返回 403

Response Body

已登出

curl -X POST 'http://localhost:8721/api/admin/auth/logout' \  -H 'X-CSRF-Token: string'
Empty

当前会话

GET
/api/admin/me

返回会话主体与 CSRF 令牌,前端刷新后据此恢复登录态。

Authorization

session
cookieimgyoung_session<token>

登录下发的会话 cookie;状态变更请求须另以 X-CSRF-Token 头回传会话绑定的 CSRF 令牌。

Response Body

会话主体与 CSRF 令牌

application/json
  1. response
user*
csrf_token*string

状态变更请求须以 X-CSRF-Token 头回传的令牌

curl -X GET 'http://localhost:8721/api/admin/me'
{  "user": {    "id": "string",    "name": "string",    "role": "admin",    "must_change_password": true  },  "csrf_token": "string"}

修改当前用户密码

PUT
/api/admin/me/password

校验旧密码;成功后该用户全部会话失效,须重新登录。新密码至少 8 个字符。

Authorization

session
cookieimgyoung_session<token>

登录下发的会话 cookie;状态变更请求须另以 X-CSRF-Token 头回传会话绑定的 CSRF 令牌。

Header Parameters

X-CSRF-Token*string

登录或 GET /api/admin/me 响应里的 csrf_token;缺失或不匹配返回 403

Request Body

application/json
  1. body
old_password*string
Formatpassword
new_password*string

至少 8 个字符

Formatpassword

Response Body

已修改,会话已失效

curl -X PUT 'http://localhost:8721/api/admin/me/password' \  -H 'X-CSRF-Token: string' \  -H 'Content-Type: application/json' \  -d '{  "old_password": "pa$$word",  "new_password": "pa$$word"}'
Empty