27 lines
610 B
Go
27 lines
610 B
Go
|
|
package user
|
|||
|
|
|
|||
|
|
import (
|
|||
|
|
"fmt"
|
|||
|
|
"github.com/gin-gonic/gin"
|
|||
|
|
"toutoukan/init/redisInit"
|
|||
|
|
"toutoukan/utill"
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
// 登出功能(从Redis删除令牌)
|
|||
|
|
func LogoutHandler(c *gin.Context) {
|
|||
|
|
tokenString := utill.ExtractTokenFromHeader(c)
|
|||
|
|
if tokenString == "" {
|
|||
|
|
c.JSON(400, gin.H{"error": "令牌不存在", "code": "10038"})
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
redisKey := fmt.Sprintf("jwt:%s", tokenString)
|
|||
|
|
err := redisInit.RedisClient.Del(redisInit.Ctx, redisKey).Err()
|
|||
|
|
if err != nil {
|
|||
|
|
c.JSON(500, gin.H{"error": "登出失败", "code": "10039"})
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
c.JSON(200, gin.H{"code": "20002", "message": "登出成功"})
|
|||
|
|
}
|