質問: 色々とネットで調べたりしたんですがいまいち理解できていないため質問させていただきます。 自分のアクセストークンの理解は 利用者が自身のユーザー情報などにアクセスするためのトークン(文字列)をサーバーが発行し サーバーが発行したトークンとどこかに保存しておいたトークンを照合して 利用者がアクセスしていい情報を提供するために利用している。 と言った感じで理解しています。 これがそもそも間違っているということもあると思います。 そういう場合はどこを間違って覚えているか、アクセストークンがどういうものか 教えて下さい。 概ね自分の理解が合っていたとして、以下の様な疑問が解決できませんでした。 アクセストークンとは文字列で合っているんでしょうか? ネットで調べるとアクセストークンがユーザーデータを持っているかのように 書かれている時があります。 アクセストークンが文字列だったとしてIDと何が違うのかわかりません。 どちらもユーザーを識別するための情報だと思うのですが何が違うのでしょうか? ユーザーIDはユーザー(人間)が扱う識別しで、 アクセストークンはサーバーとの認証認可のやり取りで扱う値と言った感じでしょうか? また、アクセストークンとは少し話がずれるのかもしれませんが リフレッシュトークンの有効性もイマイチ理解ができません。 リフレッシュトークンの仕組みでなぜアクセストークンの安全性が増すんでしょうか? 有効期限などの違いがあるだけで2つはさほど大きく違わない気がします。 いくつも同時に質問する形になってしまいましたが よろしくお願いします。
回答: 質問がOAuth2についてであれば、下記サイトのフローがわかりやすいと思います。 【Google OAuth2承認フローを理解しよう。 | GMaster:IT TRICK】 アクセストークンの生存期間とリフレッシュトークンについての説明はこのあたりがわかりやすいかも。 【doorkeeper で リフレッシュトークンの仕組みを使う - kitak.blog】 【アクセストークンに有効期限を設けるべきかどうか - Qiita】 【OAuth 2.0 の仕組みと認証方法 | murashun.jp】