|
@@ -4,7 +4,6 @@ import (
|
|
"github.com/gin-contrib/sessions"
|
|
"github.com/gin-contrib/sessions"
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/gin-gonic/gin"
|
|
"message-pusher/common"
|
|
"message-pusher/common"
|
|
- "message-pusher/model"
|
|
|
|
"net/http"
|
|
"net/http"
|
|
)
|
|
)
|
|
|
|
|
|
@@ -14,34 +13,12 @@ func authHelper(c *gin.Context, minRole int) {
|
|
role := session.Get("role")
|
|
role := session.Get("role")
|
|
id := session.Get("id")
|
|
id := session.Get("id")
|
|
status := session.Get("status")
|
|
status := session.Get("status")
|
|
- authByToken := false
|
|
|
|
if username == nil {
|
|
if username == nil {
|
|
- // Check token
|
|
|
|
- token := c.Request.Header.Get("Authorization")
|
|
|
|
- if token == "" {
|
|
|
|
- c.JSON(http.StatusOK, gin.H{
|
|
|
|
- "success": false,
|
|
|
|
- "message": "无权进行此操作,未登录或 token 无效",
|
|
|
|
- })
|
|
|
|
- c.Abort()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- user := model.ValidateUserToken(token)
|
|
|
|
- if user != nil && user.Username != "" {
|
|
|
|
- // Token is valid
|
|
|
|
- username = user.Username
|
|
|
|
- role = user.Role
|
|
|
|
- id = user.Id
|
|
|
|
- status = user.Status
|
|
|
|
- } else {
|
|
|
|
- c.JSON(http.StatusOK, gin.H{
|
|
|
|
- "success": false,
|
|
|
|
- "message": "无权进行此操作,token 无效",
|
|
|
|
- })
|
|
|
|
- c.Abort()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- authByToken = true
|
|
|
|
|
|
+ c.JSON(http.StatusOK, gin.H{
|
|
|
|
+ "success": false,
|
|
|
|
+ "message": "无权进行此操作,未登录",
|
|
|
|
+ })
|
|
|
|
+ c.Abort()
|
|
}
|
|
}
|
|
if status.(int) == common.UserStatusDisabled {
|
|
if status.(int) == common.UserStatusDisabled {
|
|
c.JSON(http.StatusOK, gin.H{
|
|
c.JSON(http.StatusOK, gin.H{
|
|
@@ -62,7 +39,6 @@ func authHelper(c *gin.Context, minRole int) {
|
|
c.Set("username", username)
|
|
c.Set("username", username)
|
|
c.Set("role", role)
|
|
c.Set("role", role)
|
|
c.Set("id", id)
|
|
c.Set("id", id)
|
|
- c.Set("authByToken", authByToken)
|
|
|
|
c.Next()
|
|
c.Next()
|
|
}
|
|
}
|
|
|
|
|
|
@@ -83,35 +59,3 @@ func RootAuth() func(c *gin.Context) {
|
|
authHelper(c, common.RoleRootUser)
|
|
authHelper(c, common.RoleRootUser)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
-// NoTokenAuth You should always use this after normal auth middlewares.
|
|
|
|
-func NoTokenAuth() func(c *gin.Context) {
|
|
|
|
- return func(c *gin.Context) {
|
|
|
|
- authByToken := c.GetBool("authByToken")
|
|
|
|
- if authByToken {
|
|
|
|
- c.JSON(http.StatusOK, gin.H{
|
|
|
|
- "success": false,
|
|
|
|
- "message": "本接口不支持使用 token 进行验证",
|
|
|
|
- })
|
|
|
|
- c.Abort()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- c.Next()
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-// TokenOnlyAuth You should always use this after normal auth middlewares.
|
|
|
|
-func TokenOnlyAuth() func(c *gin.Context) {
|
|
|
|
- return func(c *gin.Context) {
|
|
|
|
- authByToken := c.GetBool("authByToken")
|
|
|
|
- if !authByToken {
|
|
|
|
- c.JSON(http.StatusOK, gin.H{
|
|
|
|
- "success": false,
|
|
|
|
- "message": "本接口仅支持使用 token 进行验证",
|
|
|
|
- })
|
|
|
|
- c.Abort()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- c.Next()
|
|
|
|
- }
|
|
|
|
-}
|
|
|