{
  "$type": "site.standard.document",
  "canonicalUrl": "https://blog.nove-b.dev//posts/handle-expired-jwt-access-token-golang",
  "path": "/posts/handle-expired-jwt-access-token-golang",
  "publishedAt": "2023-12-22T00:00:00.000Z",
  "site": "at://did:plc:2atly2y5kfyjcj5zap6pv4wd/site.standard.publication/3mmxeqr2tcb2k",
  "tags": [
    "go",
    "jwt",
    "アクセストークン",
    "リフレッシュトークン"
  ],
  "textContent": "アクセストークンの有効期限は短く\n\nログイン認証を作るうえで、アクセストークンの有効期限は短い方がいい、という情報を得た。\n\nアクセストークンが盗まれた時に、備えてのことらしい。\n\n例えば15分とか、って例で書かれていた。\n\nそうすると15分ごとにログインをし直させなければならない。\n\nそれはユーザビリティ的にどうなのだろうか。という疑問が生まれた。\n\nそれを解決するのがリフレッシュトークンらしい。\n\nアクセストークンとリフレッシュトークン\n\nリフレッシュトークンはアクセストークンを再発行するために必要になる。\n\n例えば、ログインをしアクセストークンを取得する。\n\n15分後、アクセストークンが切れた場合はリフレッシュトークンを使用し、アクセストークンを再発行する。\n\nその際、リフレッシュトークンも最新化する。\n\nこれで15分ごとにユーザーがログインし直すという苦痛から解放することができる。\n\nアクセストークンは危険で、リフレッシュトークンは安全なの?\n\nアクセストークンもリフレッシュトークンも一緒に得ることができ、同じように保存をしておく必要がある。\n\nそれなのにどうしてアクセストークンは危険で、リフレッシュトークンは安全なのだろうか。\n\nってずっと疑問だったけど、社内の博士に聞き解決した。\n\n確率の問題\n\nアクセストークン、リフレッシュトークンが盗まれるのは通信中である。\n\n通信にアクセストークンを持たせて、15分間、何回通信をするだろうか。\n\nそれに比べてリフレッシュトークンはアクセストークンが失われた時にしか使用されないので、リフレッシュトークンに比べて安全だと言える。\n\nということ。",
  "title": "Go Langで作成したログイン認証のjwtのアクセストークンが切れた時にどうするか"
}