go jwt使用案例

package main

import (
   "fmt"
   "github.com/dgrijalva/jwt-go"
   "time"
)
//生成token
func GenerateToken(user string) (string, error) {
   token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{
      "username": user,
      "exp":      time.Now().Add(time.Second * 1).Unix(),
   })
   return token.SignedString([]byte("secret"))
}
func main(){
   tokenStr,_:=GenerateToken("aaa")
   fmt.Println("token is:",tokenStr)
   //休息2秒,验证过期时间是否有效
   time.Sleep(time.Duration(2)*time.Second)
   //验证token
   token, err := jwt.Parse(tokenStr, func(token *jwt.Token) (interface{}, error) {
      if _, ok := token.Method.(*jwt.SigningMethodHMAC); !ok {
         return nil, fmt.Errorf("not authorization")
      }
      //secret与上面签发时保持一致
      return []byte("secret"), nil
   })
   if err!=nil{
      fmt.Println("err is:",err)
   }
   fmt.Println("token is:",token)
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值