すでに提案されているユーザーJEYのように、サーバー側でクリーンアップを行うのが最善の方法です。
さらに、私は可能性についてこの点を拡張してコメントには合わないようにしたいと考えました。
トークンストレージを選択するブラウザベースのアプリケーションを扱う場合は、ほとんどあなたの毒ゲームを選択します。セキュアなHTTP専用Cookieを使用すると、XSSの脆弱性がトークンの公開につながる心配はありません。ただし、XSSに脆弱ではないことを確認する必要があります。
これは実際の作業を保存しないことを意味し、XSSによって侵害された場合でも少なくともトークンは安全であるという曖昧な感覚を得るだけです。
一方、CSRFはあなたのレーダー上にある必要があるものです。ここでは物事が面白くなるかもしれませんが、CSRFがダブル・サブミット・クッキーを防止するための簡単な方法は、implemented in such ways that they are virtually useless in the presence of exploitable XSS vulnerabilitiesたとえば、子ドメイン。
クッキーにトークンを格納するのは間違っているとは言いませんが、同様にウェブストレージに格納することもできます。どちらの場合も、あなたの選択の結果とそれぞれがもたらす可能性を理解する必要があります。
この場合、Webストレージはクライアント側の視点からログアウトシナリオを簡素化するため、シナリオに適した賛否両論を自分自身に問い合せる必要があります。あなたがフォローしているのに注意する子ドメインで一つのことを複数のアプリケーションを述べ考える
:
トークンベース認証では、あなたは、JWTを保存する場所の選択肢を与えています。一般的に、JWTはブラウザのローカルストレージに置かれています。これはほとんどのユースケースでうまくいきます。 ローカルストレージにJWTを保存する際には、いくつかの問題があります。ローカルストレージはクッキーとは異なり、特定のドメインにサンドボックス化されており、サブドメインを含む他のドメインからはそのデータにアクセスできません。
(強調はソース、私のものです:?トークンを保存するためにCookies vs Tokens: The Definitive Guideのセクション)
(開示:私はAuth0エンジニアです。)
有効期限を過ぎてサーバー側のログアウトを処理しますか? – JEY
@ JEY:はい、それは私が頑張ったものです。クライアント側のみのソリューションがあるかもしれないと思っていました。 –