0

ログイン呼び出しのヘッダーでセキュリティ トークン (GUID) を返す WebAPI があるとします。

理想的には、30 分以内にさらに電話を受けたいと考えており、電話を受けるたびにトークンを変更してさらに 30 分を取得する必要があります。

制約: セッションを使用できません。

WebAPI 環境で特定のヘッダー値に有効期限を設定する正しい方法は何ですか?

4

2 に答える 2

2

GUID を送信する代わりに、トークンを構造化データに変更できます。例: JWT

トークンを生成する一般的な手順は次のとおりです。

  1. {id: GUID, exp: time} を含む構造化データを作成します
  2. 文字列にシリアライズ (JSON.net)
  3. データの暗号化 (マシンキー / Dpapi 暗号化)
  4. データをエンコードします (Base64)

トークンを受け取る手順は、上記の手順を逆にするだけです。

サーバー コードで有効期限を取得したら、トークンを更新する必要があるかどうかを判断できます。上記の手順は、実際に ASP.NET で Cookie 認証が行うことです。

トークン ヘッダー ベースの認証の場合、OAuth 2.0 仕様に従って、リフレッシュ トークンを使用してトークンの有効期限を延長することをお勧めします。

ところで、Owin OAuth ミドルウェアはすでに oauth ベアラー トークンをサポートしています。SPA テンプレートでの動作についてのブログがあります。独自のものを発明する代わりに、それを使用することを検討してください。ありがとう。

[更新] OAuth 2.0 フローに従わずにベアラー トークン認証を簡素化する別のサンプル プロジェクトをアップロードしました。

于 2013-10-21T23:16:00.250 に答える