代码拉取完成,页面将自动刷新
package main
import (
"bolg_admin/app/models/user"
"bolg_admin/bootstrap"
"bolg_admin/config"
"bolg_admin/pkg/jwt"
"bolg_admin/pkg/logger"
"bolg_admin/pkg/model"
"bolg_admin/routes"
"fmt"
"github.com/gin-gonic/gin"
"io"
"os"
"strings"
)
func init() {
// 初始化配置信息
config.Initialize()
}
func MiddleWare() gin.HandlerFunc {
return func(ctx *gin.Context) {
isToken := ctx.GetHeader("isToken")
fmt.Println("istoken\n", isToken)
if isToken != "false" {
tokenString := ctx.GetHeader("Authorization")
fmt.Println("token\n", tokenString)
//验证前端传过来的token格式,不为空,开头为Bearer
if tokenString == "" || !strings.HasPrefix(tokenString, "XQ") {
ctx.JSON(401, gin.H{
"data": gin.H{},
"meta": gin.H{
"msg": "token为空",
"code": 401,
},
})
return
}
tokenString = tokenString[3:] //截取字符
fmt.Println("截取\n", tokenString)
//解析token:common/jwt.go
token, claims, err := jwt.ParseToken(tokenString)
//解析失败||解析后的token无效
logger.LogError(err)
if err != nil || !token.Valid {
ctx.JSON(401, gin.H{
"data": gin.H{},
"meta": gin.H{
"msg": "token无效",
"code": 401,
},
})
return
}
//token通过验证, 获取claims中的UserID
userId := claims.UserId
var userInf user.User
//查询数据库
model.DB.First(&userInf, userId)
// 验证用户是否存在
fmt.Println("用户信息\n", userInf)
if userInf.ID == 0 {
ctx.JSON(401, gin.H{
"data": gin.H{},
"meta": gin.H{
"msg": "用户不存在",
"code": 401,
},
})
return
}
//用户存在 将user信息写入上下文
ctx.Set("userId", userId)
ctx.Next()
}
}
}
func main() {
//如果需要控制台输出带有颜色的字体,请使用下面代码
gin.ForceConsoleColor()
// 记录到文件。
f, _ := os.Create("gin.log")
//gin.DefaultWriter = io.MultiWriter(f)
// 如果需要同时将日志写入文件和控制台,请使用以下代码。
gin.DefaultWriter = io.MultiWriter(f, os.Stdout)
//创建路由
r := gin.Default()
// 注册中间件
r.Use(MiddleWare())
bootstrap.SetupDB()
//routes.LoadArticle(r)
routes.LoadUser(r)
routes.Article(r)
if err := r.Run(":8090"); err != nil {
fmt.Println(err)
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。