mirror of
https://gitee.com/shikong-sk/gofiber-study
synced 2025-02-23 15:22:14 +08:00
调整
This commit is contained in:
parent
40f98a050f
commit
4b522259ec
@ -32,6 +32,14 @@ func ParseError(err error) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func ParseErrorWithCode(code int, err error) error {
|
||||
if err != nil {
|
||||
return NewErrorWithCode(code, err.Error())
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func NewDefaultError(msg string) error {
|
||||
return NewErrorWithCode(response.ERROR, msg)
|
||||
}
|
||||
|
@ -66,12 +66,12 @@ func (c *Controller) RefreshToken() {
|
||||
c.Router.Post("refreshToken", func(ctx *fiber.Ctx) error {
|
||||
refresh := &dto.RefreshToken{}
|
||||
err := ctx.BodyParser(refresh)
|
||||
if err = errorx.ParseError(err); err != nil {
|
||||
if err = errorx.ParseErrorWithCode(fiber.StatusUnauthorized, err); err != nil {
|
||||
return ctx.JSON(err)
|
||||
}
|
||||
|
||||
result, err := auth.Services.RefreshToken(refresh.RefreshToken)
|
||||
if err = errorx.ParseError(err); err != nil {
|
||||
if err = errorx.ParseErrorWithCode(fiber.StatusUnauthorized, err); err != nil {
|
||||
return ctx.JSON(err)
|
||||
}
|
||||
|
||||
|
@ -32,6 +32,9 @@ func InitService() {
|
||||
Services = &Service{}
|
||||
}
|
||||
|
||||
// generateAndSaveRefreshToken
|
||||
//
|
||||
// 生成并保存 refreshToken 刷新令牌
|
||||
func (s *Service) generateAndSaveRefreshToken(user *models.User) (refreshToken string, err error) {
|
||||
refreshToken, err = global.GetNanoId()
|
||||
if err != nil {
|
||||
@ -73,13 +76,15 @@ func (s *Service) Login(login *dto.Login) (result *vo.Login, err error) {
|
||||
}
|
||||
|
||||
func (s *Service) RefreshToken(refreshToken string) (result *vo.Login, err error) {
|
||||
refreshToken = RefreshTokenPrefix + refreshToken
|
||||
|
||||
ctx := context.Background()
|
||||
data, err := global.Redis.Get(ctx, RefreshTokenPrefix+refreshToken).Result()
|
||||
data, err := global.Redis.Get(ctx, refreshToken).Result()
|
||||
if err != nil {
|
||||
return nil, InvalidRefreshToken
|
||||
}
|
||||
|
||||
global.Redis.Del(ctx, RefreshTokenPrefix+refreshToken)
|
||||
global.Redis.Del(ctx, refreshToken)
|
||||
|
||||
cache := &models.User{}
|
||||
err = json.Unmarshal([]byte(data), cache)
|
||||
@ -90,7 +95,7 @@ func (s *Service) RefreshToken(refreshToken string) (result *vo.Login, err error
|
||||
user := &models.User{Id: cache.Id, Account: cache.Account}
|
||||
exist, err := global.DataSources.Get(user)
|
||||
if !exist {
|
||||
logger.Log.Infof("未能从 %s 找到用户信息", RefreshTokenPrefix+refreshToken)
|
||||
logger.Log.Infof("未能从 %s 找到用户信息", refreshToken)
|
||||
return nil, InvalidRefreshToken
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user