40 lines
689 B
Go
40 lines
689 B
Go
package middlewares
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
"hepa-calc-api/api/dao"
|
|
"hepa-calc-api/api/responses"
|
|
)
|
|
|
|
// Auth Auth认证
|
|
func Auth() gin.HandlerFunc {
|
|
return func(c *gin.Context) {
|
|
// 获取用户id
|
|
userId := c.GetInt64("UserId")
|
|
if userId == 0 {
|
|
responses.Fail(c)
|
|
c.Abort()
|
|
return
|
|
}
|
|
|
|
// 获取用户数据
|
|
userDao := dao.UserDao{}
|
|
user, err := userDao.GetUserById(userId)
|
|
if err != nil || user == nil {
|
|
responses.FailWithMessage("用户数据错误", c)
|
|
c.Abort()
|
|
return
|
|
}
|
|
|
|
if user.UserStatus == 2 {
|
|
responses.FailWithMessage("用户已禁用", c)
|
|
c.Abort()
|
|
return
|
|
}
|
|
|
|
c.Set("UserId", userId) // 用户id
|
|
|
|
c.Next()
|
|
}
|
|
}
|