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) }
go jwt使用案例
最新推荐文章于 2024-08-05 11:24:34 发布