Web アプリケーションと API プロバイダーの両方として使用したい nodejs アプリケーションを作成しています。ユーザーが認証されたら、そのユーザーにトークンを割り当てて、後続のリクエストに使用したいと考えています。セッションでトークンを使用してユーザーをシリアル化および逆シリアル化するだけなので、これは Web アプリケーションのパスポートでうまく機能します。ただし、API リクエストに応答する場合、セッション情報を保存するために設定する Cookie はありません。理想的には、パスポートはセッションとリクエスト本文の両方でトークンを探します。これを達成するためにパスポートを構成する方法はありますか?
質問する
46280 次
3 に答える
130
すべてのリクエストでアクセス トークンを使用するだけです。セッションを使用する必要はありません。ワークフローは次のとおりです。
POST /signin
- ユーザー名とパスワードは、クライアント リクエストでポストされます。
- サーバーは、パスポートのローカル戦略を使用してユーザーを認証します。パスポートローカルを参照してください。
- 資格情報が有効なユーザーを表している場合、サーバーはジェネレーターによって生成されたアクセス トークンを返します。node-jwt-simpleは良い選択です。
- クレデンシャルが無効な場合は、にリダイレクトし
/signin
ます。
クライアントは、認可サーバーからアクセス トークンを受け取ると、サーバー上の保護されたリソースにリクエストを送信できます。例えば:
GET /api/v1/somefunction?token='abcedf'
- クライアントは、トークン引数を使用してサーバー API を呼び出します。
- サーバーは、パスポートの Bearer Strategy を使用してトークンを認証します。Passport-http-bearerを参照してください。
参考文献
于 2013-08-15T03:05:48.587 に答える
7
bnuhero が言及しているように、セッションは必要ありません (ただし、そのアプローチにはメリットもあります)。これは、私がこのために開始しているボイラープレート プロジェクトです: https://github.com/roblevintennis/passport-api-tokens
これは、代わりの簡単な方法です(ただし、セッションを使用します)。良い相互参照になるかもしれません: http://scotch.io/tutorials/javascript/easy-node-authentication-setup-and-local
もう 1 つの参照関連: http://mherman.org/blog/2013/11/11/user-authentication-with-passport-dot-js/
于 2013-12-14T17:46:31.877 に答える