Golang JWT验证 - Web应用授权 - 生成Jwt

JWT,全称是Json Web Token, 是JSON风格轻量级的授权和身份认证规范,可实现无状态、分布式的Web应用授权。

授权流程:

1、用户请求登录,携带用户名密码到授权中心

2、授权中心携带用户名密码,到用户中心查询用户

3、查询如果正确,生成JWT凭证

4、返回JWT给用户

package mainimport ("github.com/dgrijalva/jwt-go""testing""time")//定义结构体type MyClaims struct {Username string `json:"username"`Password string `json:"password"`jwt.StandardClaims}//自定义秘钥var keyword = "hello world"func TestCreateJwt(t *testing.T) {c := MyClaims{Username: "admin", //鉴权的用户名Password: "123",   //鉴权的密码StandardClaims: jwt.StandardClaims{Audience:  "",ExpiresAt: time.Now().Add(time.Hour * 1).Unix(), //鉴权的到期时间Issuer:    "fox", //鉴权的签发人},}token := jwt.NewWithClaims(jwt.SigningMethodHS256, c) signedString, err := token.SignedString([]byte(keyword))if err != nil {t.Log(err)return}t.Log(signedString)}

执行结果

GOROOT=C:\Go #gosetupGOPATH=C:\Users\Administrator\go #gosetupC:\Go\bin\go.exe test -c -o C:\Users\Administrator\AppData\Local\Temp\GoLand\___api_server__TestCreateJwt.test.exe api-server #gosetupC:\Go\bin\go.exe tool test2json -t C:\Users\Administrator\AppData\Local\Temp\GoLand\___api_server__TestCreateJwt.test.exe -test.v -test.paniconexit0 -test.run ^\QTestCreateJwt\E$ #gosetup=== RUN   TestCreateJwt    main_test.go:34: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImFkbWluIiwicGFzc3dvcmQiOiIxMjMiLCJleHAiOjE2NTk3OTQzODQsImlzcyI6ImZveCJ9.Tdrl7fG1O23YhS5bPELPq3inAkrRLusU4h5NM1KKKgU--- PASS: TestCreateJwt (0.00s)PASS进程 已完成,退出代码为 0

Golang   JWT
发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章