Go Langで作成したログイン認証のjwtのアクセストークンが切れた時にどうするか
投稿日:2023年12月23日
目次
アクセストークンの有効期限は短く
ログイン認証を作るうえで、アクセストークンの有効期限は短い方がいい、という情報を得た。
アクセストークンが盗まれた時に、備えてのことらしい。
例えば15分とか、って例で書かれていた。
そうすると15分ごとにログインをし直させなければならない。
それはユーザビリティ的にどうなのだろうか。という疑問が生まれた。
それを解決するのがリフレッシュトークンらしい。
アクセストークンとリフレッシュトークン
リフレッシュトークンはアクセストークンを再発行するために必要になる。
例えば、ログインをしアクセストークンを取得する。
15分後、アクセストークンが切れた場合はリフレッシュトークンを使用し、アクセストークンを再発行する。
その際、リフレッシュトークンも最新化する。
これで15分ごとにユーザーがログインし直すという苦痛から解放することができる。
アクセストークンは危険で、リフレッシュトークンは安全なの?
アクセストークンもリフレッシュトークンも一緒に得ることができ、同じように保存をしておく必要がある。
それなのにどうしてアクセストークンは危険で、リフレッシュトークンは安全なのだろうか。
ってずっと疑問だったけど、社内の博士に聞き解決した。
確率の問題
アクセストークン、リフレッシュトークンが盗まれるのは通信中である。
通信にアクセストークンを持たせて、15分間、何回通信をするだろうか。
それに比べてリフレッシュトークンはアクセストークンが失われた時にしか使用されないので、リフレッシュトークンに比べて安全だと言える。
ということ。
- # Go
- # jwt
- # アクセストークン
- # リフレッシュトークン
次に読むおすすめ記事
Go Lang でモジュールを作成し、それをMainパッケージで使用する
Go Langで新規登録のWebAPIを作成したので、認証周りをJWTで作成する。
Go Langで新規登録と退会のWebAPIを作成したので、やったことをまとめてみる。
問題解決にいたらず、筆を置いているページもありますので、ご了承ください🙇♀️
この記事に対するコメント