LearnJWT in Gin for Go
介紹
JSON Web Token (JWT), 是爲了在網絡應用環境間傳遞聲明而執行的一種基於JSON的開放標準((RFC 7519).該 Token 被設計爲緊湊且安全的,特別適用於分佈式站點的單點登錄(SSO)場景。JWT 的聲明一般被用來在身份提供者和服務提供者間傳遞被認證的用戶身份信息,以便於從資源服務器獲取資源,也可以增加一些額外的其它業務邏輯所必須的聲明信息,該 Token 也可直接被用於認證,也可被加密。
安裝
使用
1. import "github.com/dgrijalva/jwt-go"
2. import "github.com/appleboy/gin-jwt"
使用jwt-go,可操作性更好一點,參考文檔:https://godoc.org/github.com/...
編寫JWT工具包
1. 定義Claims結構體
2.定義方法:GenerateToken(username, password string) (string error){}, ParseToken(token string) (*Claims, error){}
3.編寫middleware下的jwt
JWT() gin.HandlerFunc{}
如何獲取token
1.在models裏面定義認證模型以及驗證的方法
2.在apis裏面編寫獲取用戶認證信息並生成token的方法,
驗證token
調用相應的api,看是否返回token成功
將中間件接入Gin
在router.go裏面通過apiv1.Use(jwt.JWT()),使用中間件