Go

Go Langで作成したログイン認証のjwtのアクセストークンが切れた時にどうするか

目次

アクセストークンの有効期限は短く

ログイン認証を作るうえで、アクセストークンの有効期限は短い方がいい、という情報を得た。

アクセストークンが盗まれた時に、備えてのことらしい。

例えば15分とか、って例で書かれていた。

そうすると15分ごとにログインをし直させなければならない。

それはユーザビリティ的にどうなのだろうか。という疑問が生まれた。

それを解決するのがリフレッシュトークンらしい。

アクセストークンとリフレッシュトークン

リフレッシュトークンはアクセストークンを再発行するために必要になる。

例えば、ログインをしアクセストークンを取得する。

15分後、アクセストークンが切れた場合はリフレッシュトークンを使用し、アクセストークンを再発行する。

その際、リフレッシュトークンも最新化する。

これで15分ごとにユーザーがログインし直すという苦痛から解放することができる。

アクセストークンは危険で、リフレッシュトークンは安全なの?

アクセストークンもリフレッシュトークンも一緒に得ることができ、同じように保存をしておく必要がある。

それなのにどうしてアクセストークンは危険で、リフレッシュトークンは安全なのだろうか。

ってずっと疑問だったけど、社内の博士に聞き解決した。

確率の問題

アクセストークン、リフレッシュトークンが盗まれるのは通信中である。

通信にアクセストークンを持たせて、15分間、何回通信をするだろうか。

それに比べてリフレッシュトークンはアクセストークンが失われた時にしか使用されないので、リフレッシュトークンに比べて安全だと言える。

ということ。

次に読むおすすめ記事

Go Lang でモジュールを作成し、それをMainパッケージで使用する

Go Langで新規登録のWebAPIを作成したので、認証周りをJWTで作成する。

Go Langで新規登録と退会のWebAPIを作成したので、やったことをまとめてみる。

Go LangでWebAPIを作成するために、GolangでエンドポイントにアクセスしDBからデータを取得する

Go LangでWebAPIを作成するために、GolangでMySQLに接続する

この記事に対するコメント

お気軽にコメントを下さい

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このブログは製作者の開発ログであり、厳密なテックブログではありません。
問題解決にいたらず、筆を置いているページもありますので、ご了承ください🙇‍♀️