gin jwt-go 生成token及jwt中间件验证

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

一、定义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:
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值