一、定义jwt中间件,同时将 生成token、验证token、token中间件handlerfunc都写在中间件文件中
基于 github.com/dgrijalva/jwt-go 包 、gin框架
obj/middleware/jwt.go
注意:我们的签名算法用的是 jwt.SigningMethodHS256 其他方法报错:key is of invalid type
package middleware
import (
"github.com/dgrijalva/jwt-go"
"github.com/gin-gonic/gin"
"net/http"
"strings"
"time"
)
//Jwtkey 秘钥 可通过配置文件配置
var Jwtkey = []byte("blog_jwt_key")
type MyClaims struct {
UserId int `json:"user_id"`
UserName string `json:"username"`
jwt.StandardClaims
}
// CreateToken 生成token
func CreateToken(userId int,userName string) (string,error) {
expireTime := time.Now().Add(2*time.Hour) //过期时间
nowTime := time.Now() //当前时间
claims := MyClaims{
UserId: userId,
UserName: userName,
StandardClaims:jwt.StandardClaims{
ExpiresAt:expireTime.Unix(), //过期时间戳
IssuedAt:

本文介绍了一个基于JWT的认证系统实现,使用了gin框架和jwt-go库。文章详细讲解了JWT的生成、验证过程,并提供了两个实际接口案例:获取JWT令牌及使用JWT进行资源访问。
最低0.47元/天 解锁文章
1555

被折叠的 条评论
为什么被折叠?



