https://stackoverflow.com/a/7209263/1225328から:
リフレッシュ トークンの考え方は、アクセス トークンが侵害された場合、有効期間が短いため、攻撃者がそれを悪用できる期間が限られているというものです。
わかりましたが、攻撃者が更新トークンにアクセスすると、新しい認証トークンを取得できるようになります。間違っていますか? これは、長寿命のトークンのセキュリティ上の欠陥を延期するだけのようです...
この点に関しては、同じ回答で次のことがわかります。
攻撃者はアクセス トークンを取得するために、更新トークンに加えてクライアント ID とシークレットを必要とするため、侵害された場合、更新トークンは役に立ちません。
それでは、更新トークンを使用することと、単にサインインすることの違いは何ですか? また、ユーザーが再入力する必要がないようにするには、クライアント ID とシークレットをどのように保存しますか?
@FStephenQが指摘したように、更新トークンは 1回しか使用できません。その後、攻撃者は新しい認証トークンを取得できますが、1 回だけであり、有効期間は短いです。では、既に使用したリフレッシュ トークンを取得するにはどうすればよいでしょうか。トークンを使用するときに新しいトークンを取得すると、攻撃者も自分のトークンを更新できます...
実際の問題は、ユーザーのサインインを維持するにはどうすればよいかということです。私が使用しているアプリでは、一度サインインすると、再度サインインする必要はありません。