Refresh Token
2414 ワード
ダウンロードが必要なライブラリ
graphql-request
$ yarn add graphql-request
accessTokenが期限切れになった場合の2つの解決方法
第一の方法
onErrorに出会ったら
restore APIを送信すると、accessTokenとともにBackendに送信されます.
そしてBackendは受信したデータをDBで送信する
検証時間再リセットされたaccessTokenはBackendに送信されます.
BackendでリセットしたaccessTokenをbrに渡します.
brから新たにリリースされたaccessTokenが受信された場合は、グローバルContextに格納されます.
失敗したクエリーを再要求します.
refreshTokenが2ヶ月の場合、accessTokenが2ヶ月後に期限切れになります.
再ログインを求めるメッセージが表示され、「ログイン」ウィンドウに移動します.
これにより、タグが期限切れになると自動的にタグが更新されるため、ユーザーはタグを期限切れにしません.
サービスを利用できます.
トークンの取得期限切れ=>エラーキャッシュ=>AccessTokenリクエストの復元=>AccessToken.
=>GlobalContext=>クエリーの再展開=>新しいaccessTokenを正常に実行するために再取得
無限反復
第2の方法
refreshTokenを無視して再ログインさせます.
マイクロサービス
認証サーバー
リソースサーバ
ブラウザで、バックエンド・サーバから認証に関連するデータを受信します.
brとBackend間の通信が終了します.(認証サーバ通信が終了し、リソースサーバのみで通信)
ただしaccessTokenが期限切れになった場合
エラーが発生した場合は、Backと再通信し、accessTokenを再発行します.(認証サーバ通信の再起動)
ここでは、認証サーバとリソースサーバに簡単に分けます.
Backendでは、より詳細に役割を割り当ててサービスします.
これはマイクロサービスと呼ばれています.
マイクロサービスの利点は、メンテナンスが容易であることです.
フリーパス
エラーが発生した場合、restore apiを要求するために、
私たちは間違った人が彼を捕まえる必要がある.
エラー時にチェックする機能はonErrorです
_app.tsxにマウントした後
refreshTokenがlocalStorageで「true」の場合
getAccessTokenにsetAccessTokenを入れて実行します.
ちなみに、ログイン時にローカルメモリにrefreshTokenが追加された値は「true」です.
setAccessToken要求RESTORE ACCESS TOKENを受信します.
restore APIが要求されると、更新されたaccessTokenが受信され、その結果が結果に含まれる.
newAccessTokenをpropsとして受信したsetAccessTokenはglobal Stateに格納される.
クッキーのsrc値のため、httpではなくアドレスにhttpを書くセキュリティサイトとして必要です
さらに、クライアントを介して下位コンポーネントからApolloクライアントに書き込むこともできます.
必ずお客様に伝えてください.
Reference
この問題について(Refresh Token), 我々は、より多くの情報をここで見つけました https://velog.io/@byungjin0120/Refresh-Tokenテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol