私はjwt.ioと認証に比較的慣れていないため、次の方法でJWT.ioを使用しています。
サーバー側
ユーザーがログインしたら、userid
が埋め込まれたトークンを生成し、メッセージ本文でユーザーに返します
クライアント側ブラウザ/ JSトークンをlocalStorageに保存し、後続のリクエストごとに、トークンをヘッダーに渡します。
Authorization: Basic someEncryptedValue
私も使用しました
X-Auth-Token: someEncryptedValue
これをクッキーに入れてもいいですか?
次に、サーバー側で、トークンをシークレットに対して検証し、有効期限を確認し、トークンからIDを取得して、リクエストを処理します。
このワークフローはすべて正しいですか?
ワークフローは正しく(HTTPSを使用していると想定しています)、はい、トークンを認証ヘッダーに渡すのではなく、Cookieに格納するだけで済みます。
OAuth2の使用はお勧めしません。最も単純なフローを適切に実装すると、ログインプロセスがかなり複雑になります。また、「サーバー側」のパーツはすべて同じドメインに存在するため、必要がないように見えます。
もし私だったらクッキーを使います。よく理解されたスキームに固執することで、混乱の可能性が減り、ブラウザがCookieの送信と更新を処理することを意味します(たとえば、アイドルタイムアウトでセッションを処理する方法を検討します)
良い読み物。トークンをローカルストレージに保存し、javascriptを介してhttpリクエストで送り返すことについて話します。
: https://stormpath.com/blog/where-to-store-your-jwts-cookies-vs-html5-web-storage
すべてのブラウザーが、HTTP経由でも安全なダイジェスト認証をサポートするようになりました。正確な要件によっては、これで十分な場合があります。