2 Star 0 Fork 0

心不在焉/bolg_admin

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
main.go 2.30 KB
一键复制 编辑 原始数据 按行查看 历史
心不在焉 提交于 2022-03-24 17:54 . 文章内容接口
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)
}
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/be-absent-minded/bolg_admin.git
git@gitee.com:be-absent-minded/bolg_admin.git
be-absent-minded
bolg_admin
bolg_admin
master

搜索帮助