LoginSignup
4
2

More than 1 year has passed since last update.

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

Posted at

アクセストークン

headerにアクセストークンを持たせることでApiを叩くことができる。

リフレッシュトークン

古いアクセストークン
もうAPIを叩くことができない。
しかし、リフレッシュトークンを渡すことで新しいアクセストークンを受け取ることができる。
再度ログインする必要がない。

流れ

アクセストークンを得る

ログインする。
レスポンス↓

{
  expired_at: "2022-08-30 17:10:03"
  expires_in: 60
  token: "eyAAAAAAAAAAAAAAAAAAAAAAA.eyBBBBBBBBBBBBBBBBBBB.cccccccccccccccccccccccccccc"
  token_type: "bearer"
}

アクセストークンが切れる

APIを叩くと401が返ってくる。
レスポンス↓

{
  error: Unauthorized
}

リフレッシュする

/api/refresh などのAPIを叩くと、新しいtokenが返ってくる。
ので古いtokenと交換する。
ログインをし直さないでも、tokenが更新される。

{
  expired_at: "2022-08-30 17:10:03"
  expires_in: 60
  token: "eyAAAAAAAAAAAAAAAAAAAAAAA.eyXXXXXXXXXXXXXXX.qqqqqqqqqqqqqqqqqqqq"
  token_type: "bearer"
}

環境設定

.envでアクセストークンの有効期限と、リフレッシュトークンの有効期限を変更することができる
lcobucci/jwtだと、
JWT_TTL(アクセストークンの有効期限)、JWT_REFRESH_TTL(リフレッシュトークンの有効期限)
で設定する。

まとめ

アクセストークンが入場チケットで、
リフレッシュトークンが古い入場チケットで、チケット売り場で入場チケットと交換できる券みたいな感じかな。(そんなのないけど)
両方有効期限をつけることができるよ、という感じです。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2