️ refactor: 小幅提升性能

This commit is contained in:
naiba
2021-01-17 22:05:59 +08:00
parent 67df0852f9
commit d059835877
5 changed files with 27 additions and 22 deletions

View File

@@ -22,8 +22,6 @@ type AuthorizeOption struct {
func Authorize(opt AuthorizeOption) func(*gin.Context) {
return func(c *gin.Context) {
token, err := c.Cookie(dao.Conf.Site.CookieName)
token = strings.TrimSpace(token)
var code uint64 = http.StatusForbidden
if opt.Guest {
code = http.StatusBadRequest
@@ -35,18 +33,21 @@ func Authorize(opt AuthorizeOption) func(*gin.Context) {
Link: opt.Redirect,
Btn: opt.Btn,
}
if token != "" {
}
var isLogin bool
var u model.User
err = dao.DB.Where("token = ?", token).First(&u).Error
if err == nil {
isLogin = u.TokenExpired.After(time.Now())
}
if isLogin {
c.Set(model.CtxKeyAuthorizedUser, &u)
token, _ := c.Cookie(dao.Conf.Site.CookieName)
token = strings.TrimSpace(token)
if token != "" {
var u model.User
if err := dao.DB.Where("token = ?", token).First(&u).Error; err == nil {
isLogin = u.TokenExpired.After(time.Now())
}
if isLogin {
c.Set(model.CtxKeyAuthorizedUser, &u)
}
}
// 已登录且只能游客访问
if isLogin && opt.Guest {
ShowErrorPage(c, commonErr, opt.IsPage)