GoでJWTを使ったシンプルな認証を実装してみる。
※DBは利用していないため、起動するたびにsignin
する。
※簡単のために、モジュールの分割はある程度にとどめています。
サービスへの登録ロジック。
{
"name": "Kade",
"password": "qwerty"
}
{
"name": "Kade",
"Token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoiS2FkZSIsImV4cCI6MTYwODI4NDcxNH0.my6PvbNhkg_i1w_cX0UmrK3AJZ_1e3WtMBiL-urtA0s"
}
サービスにログインしてトークンを取得する。
{
"name": "Kade",
"password": "qwerty"
}
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoiS2FkZSIsImV4cCI6MTYwODI4NTI3N30._4H0KlwgRQODMol7-Kgy4bcAu7FSTVeOSzRQvriDJCI"
}
ログインしている(Authorization
ヘッダに有効なJWTトークンが存在する)場合は、挨拶が表示される。
ログインしていない場合は、エラーが返ってくる。
{"message":"Hello, Kade"}
401
token is expired by 1s