This commit is contained in:
toom1996
2026-08-31 19:59:56 +08:00
parent a325e438be
commit f4f6e02e3c
14 changed files with 594 additions and 20 deletions

View File

@ -61,13 +61,21 @@ func New(opt Options) *gin.Engine {
// 街拍详情:同走秀详情,单条枚举防护由 HashID 承担,不走前端签名。
api.GET("/public/street-snaps/:id", opt.StreetSnap.Detail)
// 账号体系:当前只保留「取当前用户」(JWT 无状态,无服务端登出路由)。
// 账号体系:双令牌(access 短命无状态 + refresh 落库可吊销)。
//
// 注册 / 登录接口已从路由移除:前端没有登录注册入口,对外开放即是垃圾账号与撞库入口。
// handler / service / repository / dto 中对应实现一并删除。
// 将来要接入时:补回 POST /auth/register、POST /auth/login,并同步前端 src/lib/api.ts 与登录页。
// 登录/刷新/登出均为公开端点(无需 Bearer,否则拿不到 token 或刷新不了)。
// /me 需 Bearer(middleware.Auth);踢下线(logout-all)由 refresh token 反查用户,亦公开。
auth := api.Group("/auth")
{
// 登录:公开端点,无需鉴权中间件(否则永远进不来)
auth.POST("/login", opt.Auth.Login)
// 续期:用 refresh token 换新的 access token
auth.POST("/refresh", opt.Auth.Refresh)
// 单设备登出:吊销当前 refresh token
auth.POST("/logout", opt.Auth.Logout)
// 全设备登出 / 踢下线:吊销该用户全部 refresh token
auth.POST("/logout-all", opt.Auth.LogoutAll)
// 取当前用户(需 Bearer)
auth.GET("/me", middleware.Auth(opt.JWT), opt.Auth.Me)
}
}