【Go言語】GoでJWT(JSON Web Token)を使うサンプル
参考
- JSON Web Tokens - jwt.io
- GitHub - dgrijalva/jwt-go: Golang implementation of JSON Web Tokens (JWT)
- jwt - GoDoc
- GitHub - slok/go-jwt-example: Golang & jwt (Jason web token) example ← なんかこれ今時点で動かなかったので
package main import ( "log" jwt "github.com/dgrijalva/jwt-go" ) type User struct { Name string `json:"name"` Age int `json:"age"` jwt.StandardClaims } func createTokenString() string { // User情報をtokenに込める token := jwt.NewWithClaims(jwt.GetSigningMethod("HS256"), &User{ Name: "otiai10", Age: 30, }) // Secretで文字列にする. このSecretはサーバだけが知っている tokenstring, err := token.SignedString([]byte("foobar")) if err != nil { log.Fatalln(err) } return tokenstring } func main() { // たとえばリクエストのヘダーからトークン文字列を受け取ったとする tokenstring := createTokenString() // これね log.Println(tokenstring) // サーバだけが知り得るSecretでこれをParseする token, err := jwt.Parse(tokenstring, func(token *jwt.Token) (interface{}, error) { return []byte("foobar"), nil }) // Parseメソッドを使うと、Claimsはmapとして得られる log.Println(token.Claims, err) // 別例, jwt.StandardClaimsを満たすstructに直接decodeさせることもできる user := User{} token, err = jwt.ParseWithClaims(tokenstring, &user, func(token *jwt.Token) (interface{}, error) { return []byte("foobar"), nil }) log.Println(token.Valid, user, err) }
gistのほう Golang JWT Example (2017/Oct/26) · GitHub
DRY
- 作者: 松木雅幸,mattn,藤原俊一郎,中島大一,牧大輔,鈴木健太,稲葉貴洋
- 出版社/メーカー: 技術評論社
- 発売日: 2016/09/09
- メディア: 大型本
- この商品を含むブログ (4件) を見る