gin-jwt の使い方
参考ページ
JWT Middleware for Gin Framework
プログラムをクローンします。
git clone https://github.com/appleboy/gin-jwt
サンプルのサーバーの起動
cd gin-jwt/
go run _example/basic/server.go
トークンの取得
get_token.sh
curl -X POST -d'username=admin' -d'password=admin' \
localhost:8000/login > tmp001.json
#
jq . tmp001.json
実行結果
{
"code": 200,
"expire": "2021-02-03T09:44:01+09:00",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MTIzMTMwNDEsImlkIjoiYWRtaW4iLCJvcmlnX2lhdCI6MTYxMjMwOTQ0MX0.cXeEgaMRCZuV3kw1cA1HkyDKZ1jBG_X9QZuv2jIgk-o"
}
トークンの更新 (取得したトークンで置き換えて下さい)
go_refresh.sh
curl GET localhost:8000/auth/refresh_token \
-H "Authorization:Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MTIzMTA1OTMsImlkIjoiYWRtaW4iLCJvcmlnX2lhdCI6MTYxMjMwNjk5M30.kn2BF2LZ7s0NQkG1WhL2-B9gY01UEAUGKyibSSBzHsU"
ログインのテスト
go_login.sh
curl -X GET localhost:8000/auth/hello \
-H "Authorization:Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MTIzMTA1OTMsImlkIjoiYWRtaW4iLCJvcmlnX2lhdCI6MTYxMjMwNjk5M30.kn2BF2LZ7s0NQkG1WhL2-B9gY01UEAUGKyibSSBzHsU" | jq .
実行結果
{
"text": "Hello World.",
"userID": "admin",
"userName": "admin"
}
サーバーのプログラムをちょっと改造してメッセージを変更します。
_example/basic/server.go
(省略)
func helloHandler(c *gin.Context) {
claims := jwt.ExtractClaims(c)
user, _ := c.Get(identityKey)
c.JSON(200, gin.H{
"userID": claims[identityKey],
"userName": user.(*User).UserName,
// "text": "Hello World.",
"text": "Hello World. こんにちは",
})
}
(省略)
サーバーを再起動します。
go run _example/basic/server.go
再びログインをしてみます。
実行結果
{
"text": "Hello World. こんにちは",
"userID": "admin",
"userName": "admin"
}
Author And Source
この問題について(gin-jwt の使い方), 我々は、より多くの情報をここで見つけました https://qiita.com/ekzemplaro/items/65e63899c087fee4b102著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .