1

Express-session を使用して、OAuth 2 プロバイダーに対して認証されたユーザーのアクセス トークンを保存し、クライアント アプリケーションに安全に署名された Cookie を提供することを検討しています。

私が理解していることから、セッションストアサーバー側(mongodbなど)からの後続のリクエストでCookieに関連付けられたトークンを取得できます。これは、Expressルートを使用してエンドポイントを分離するリクエストのベアラーAuthorizationヘッダーで使用できます。

私は PassportJS に出会い、セットアップでそれを使用する必要があるかどうかを判断しようとしています。

現在、エクスプレス アプリでログイン POST リクエストを処理してから、リソース オーナーのパスワード資格情報付与タイプのリクエスト フローを使用してアクセス トークン リクエストを作成しています。これは正常に機能しており、プロバイダーから更新トークンと有効期限とともにアクセス トークンを受け取っています。

私が知る限り、PassportJS はあらゆる種類のプロバイダーに認証戦略を提供しますが、私のケースで使用されている許可タイプをサポートするかどうかはわかりません。さらに、私はすでにトークンを要求して受け取る作業を行っているので、PassportJS がここで私にとってどれほどの利益になるかはわかりません。

高速セッションのドキュメントを読むと、これで必要なものがすべて得られると思います。さらに、API ゲートウェイから返されたトークンの有効期限に基づいて Cookie の有効期限を設定できます。

PassportJS は高速セッションの上にあり、高速で生成されたセッションにアクセスするだけだと思いますが、それは正しいですか?

4

1 に答える 1

1

必要な認証戦略をすでに実装していて、トークンを保存してユーザーを識別し、ログイン状態を維持するだけでよい場合は、express-session だけで十分です。express-session で使用されるセッション Cookie は、読み取り時に署名および検証されます。

PassportJS は高速セッションの上にあり、高速で生成されたセッションにアクセスするだけだと思いますが、それは正しいですか?

はい、そうです。ただし、Passport.js でセッションを使用する必要はありません (Passport.js ドキュメントの「セッションの無効化」を参照してください)。

Passport.js のドキュメント ( http://passportjs.org/docs ) も、Passport.js が単なる認証ミドルウェアであることを明確にしています。

これは、リクエストの認証という単一の目的を果たすように設計されています。モジュールを作成する場合、カプセル化は美徳であるため、Passport は他のすべての機能をアプリケーションに委譲します。

于 2016-04-01T13:59:56.730 に答える