登录认证
youlai-gin 支持两种会话模式,可通过 configs/*.yaml 中的 security.sessionType 切换:
yaml
security:
sessionType: jwt # jwt | redis-token调用约定:
- Header:
Authorization: Bearer <accessToken> - API 前缀:
/api/v1
认证接口
- 获取验证码:
GET /api/v1/auth/captcha - 登录:
POST /api/v1/auth/login - 短信验证码登录:
POST /api/v1/auth/login/sms - 发送登录短信验证码:
POST /api/v1/auth/sms/code - 微信授权登录:
POST /api/v1/auth/login/wechat - 小程序 Code 登录:
POST /api/v1/auth/wx/miniapp/code-login - 小程序手机号登录:
POST /api/v1/auth/wx/miniapp/phone-login - 刷新令牌:
POST /api/v1/auth/refresh-token - 退出登录:
DELETE /api/v1/auth/logout
刷新令牌请求体:{"refreshToken":"..."}
登录响应示例:
json
{
"code": "00000",
"msg": "成功",
"data": {
"tokenType": "Bearer",
"accessToken": "...",
"refreshToken": "...",
"expiresIn": 7200
}
}模式说明
jwt:JWT + Redis tokenVersion + 黑名单redis-token:access/refresh token 存 Redis,便于会话治理
会话失效机制
tokenVersion 机制:
登录时将版本号写入 JWT,禁用用户或修改密码时递增 Redis 中的版本号:
Key: auth:user:token_version:{userId}
Value: 版本号(整数)校验逻辑:token.tokenVersion < redis.tokenVersion → Token 失效
