feat(session): sign out and revoke root token

This commit is contained in:
Aaron Liu
2025-05-23 16:49:01 +08:00
parent c6ee3e5dcd
commit db7b54c5d7
6 changed files with 81 additions and 15 deletions

View File

@@ -172,8 +172,17 @@ func UserActivate(c *gin.Context) {
// UserSignOut 用户退出登录
func UserSignOut(c *gin.Context) {
util.DeleteSession(c, "user_id")
c.JSON(200, serializer.Response{})
service := ParametersFromContext[*user.RefreshTokenService](c, user.RefreshTokenParameterCtx{})
res, err := service.Delete(c)
if err != nil {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return
}
c.JSON(200, serializer.Response{
Data: res,
})
}
// UserMe 获取当前登录的用户

View File

@@ -299,6 +299,10 @@ func initMasterRouter(dep dependency.Dep) *gin.Engine {
controllers.FromJSON[usersvc.RefreshTokenService](usersvc.RefreshTokenParameterCtx{}),
controllers.UserRefreshToken,
)
token.DELETE("",
controllers.FromJSON[usersvc.RefreshTokenService](usersvc.RefreshTokenParameterCtx{}),
controllers.UserSignOut,
)
}
// Prepare login
@@ -1057,8 +1061,6 @@ func initMasterRouter(dep dependency.Dep) *gin.Engine {
controllers.FromQuery[usersvc.SearchUserService](usersvc.SearchUserParamCtx{}),
controllers.UserSearch,
)
// 退出登录
user.DELETE("session", controllers.UserSignOut)
// WebAuthn 注册相关
authn := user.Group("authn",