Learn-json-web-tokens: Webストレージとプログレッシブエンハンスメント

作成日 2015年10月15日  ·  9コメント  ·  ソース: dwyl/learn-json-web-tokens

#5、#46、およびオンラインでのほとんどの議論では、人々はデフォルトでCookieではなくローカルストレージ/セッションストレージをJWTに使用しているようです。 これには、アプリ全体でAJAXを使用して、ヘッダーを毎回Webストレージから設定できるようにする必要があります。 私の理解では、これはクロスサイトリクエストフォージェリを防ぐためです(そして本質的にこれを行うために同一生成元ポリシーを活用しています)。

一部のデバイスがJavaScriptをまったくサポートしないプログレッシブエンハンスメントとこれはどのように適合しますか?

enhancement question

最も参考になるコメント

これはツールセットによって異なりますが、必ずしもそうとは限りません。 たとえばAngularを使用すると、これを1回設定できます..jqueryでも簡単に実行できると思います。

$.ajaxSetup({
   headers: { 'x-my-custom-header': 'some value' }
});

トークンのトランスポート層としてのCookieのもう1つの問題は、2つのタイムアウトを使用していて、CORSの問題を回避するメリットが得られないことです。 Cookieは、RESTfulWebサービスへのアクセスを複雑にします。 クッキーにバンドルするよりも、トークンを使用してリソースにアクセスするためのカールワンライナーを作成する方がはるかに簡単です。

全てのコメント9件

_Another_ _GREAT _ _Wizard_からの質問! :+1:
このマイクロ例の目的のために、私はその「_Ok_」がlocalStorageを使用すると思います。
正直に言うと、_everyone_は最近Reactを使用しており、アクセシビリティはまったく考慮されていません。
すべてのクールな子供たちは、_プログレッシブエンハンスメント_よりも_シャイニーニューフレームワーク_に_方法_興味があります...

しかし...
_actual_アプリでは、下位互換性とプログレッシブエンハンスメントのためにcookies _ precisely_を使用しています。
そのため、JWT2にオプションを追加しました...参照: https

結論として、このリポジトリの例にlocalStorageを追加し、 commentを追加して、JWTの保存にCookieを使用することは「_Ohkay_」であることを通知します。これは、すべての_水平スケーラビリティ_とセキュリティを引き続き取得できるためです。 JWTを設定/取得し、リクエストごとにヘッダーに追加する手間を省きながら、JWTを使用する利点...

@ rjmk@ nelsonic

ローカルストレージに保存されているJWTSをヘッダーで送信する必要がある特定の理由がありますか、それともhttps://www.npmjs.com/package/node-localstorageの使用に関して脆弱/「間違っている」ものがあり

@Jbargetは、サーバー上のlocalStorageにアクセスする必要がある「_Universal_」を構築していますか? それがあなたのユースケースであるなら、 node-localstorageモジュールはあなたの目的を果たします。
_ただし_「AJAX」リクエストでJWTをサーバーに送り返すには、 header JWTを_手動で_送信する必要があります...したがって、必要な場合は_module_を使用する利点はあまりありません。トークンをlocalStorageとの間で取得/設定します..。

@nelsonic明快さのおかげで、おそらく各リクエストのヘッダーに設定することになります!

@Jbarget JWTをCookieに保存することに対する

@nelsonic異議はありません。ローカル/セッションストレージではなく、アプリのどこからでもCookieにアクセスできるため、私の生活が簡素化されると思いますか?

Cookieがサーバーによって_set_されると、送受信される_all_リクエストには常にCookieが含まれるため、アプリが簡素化されます。 つまり、その時点以降、それについて_考える必要は_ありません_。
でJWTを格納対照的にlocalStorage手段あなたは非アヤックスの相互作用を持つことができない、あなたはに覚えておく必要がSET authサーバーに作る要求ごとにヘッダ.. 。

これはツールセットによって異なりますが、必ずしもそうとは限りません。 たとえばAngularを使用すると、これを1回設定できます..jqueryでも簡単に実行できると思います。

$.ajaxSetup({
   headers: { 'x-my-custom-header': 'some value' }
});

トークンのトランスポート層としてのCookieのもう1つの問題は、2つのタイムアウトを使用していて、CORSの問題を回避するメリットが得られないことです。 Cookieは、RESTfulWebサービスへのアクセスを複雑にします。 クッキーにバンドルするよりも、トークンを使用してリソースにアクセスするためのカールワンライナーを作成する方がはるかに簡単です。

この問題は、1年以上経過しているため、自動的にクローズされます。 それでもプロジェクトに関連する場合は、お気軽に再開してください。

このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

rhewitt22 picture rhewitt22  ·  5コメント

joepie91 picture joepie91  ·  18コメント

alanshaw picture alanshaw  ·  6コメント

KumarS-Naveen picture KumarS-Naveen  ·  3コメント

sarneeh picture sarneeh  ·  3コメント