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
留言与评论(共有 0 条评论) “” |