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