45 lines
844 B
Go
45 lines
844 B
Go
package middle
|
|
|
|
import (
|
|
"background/config"
|
|
"background/controller"
|
|
"background/model"
|
|
"encoding/json"
|
|
"log"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
func AuthMiddle(c *gin.Context) {
|
|
token := c.Query("token")
|
|
user := c.Query("userid")
|
|
if user == "" || token == "" {
|
|
log.Print("error user not existed or token missing")
|
|
log.Print(c.Request.URL.String())
|
|
c.JSON(200, controller.RespBase{
|
|
"auth err", 20, nil,
|
|
})
|
|
c.Abort()
|
|
return
|
|
}
|
|
if config.RedisOne().Exists(token).Val() {
|
|
users := model.Users{}
|
|
userInfo := config.RedisOne().Get(token).Val()
|
|
e := json.Unmarshal([]byte(userInfo), &users)
|
|
if nil != e {
|
|
c.JSON(200, controller.RespBase{
|
|
"auth err", 10, nil,
|
|
})
|
|
c.Abort()
|
|
return
|
|
}
|
|
} else {
|
|
c.JSON(200, controller.RespBase{
|
|
"expired or no login", 210, nil,
|
|
})
|
|
c.Abort()
|
|
return
|
|
}
|
|
c.Next()
|
|
}
|