client.domain.com でアクセスできる単一ページの Web アプリケーションを構築しようとしています。api.domain.com で公開されている Web サービス API があります (モバイル アプリ クライアントからもアクセスされます)。
パスポートを使用して、ローカル、基本、およびベアラーの認証戦略を実装しました。curl でテストするとうまくいくようです。
API 呼び出しで 'access_token' を指定すると、モバイルと curl ではうまく機能しますが、Javascript Web クライアントで実装するのは面倒です。セッション/クッキーに access_token を保存することを考えています。これは理にかなっていますか、それともセキュリティを侵害しますか?
私は次のことを達成したいと考えています: ユーザー アクセス client.domain.com。api.domain.com/token に送信するログイン フォームが表示されます。認証が成功したら、セッション/Cookie でトークンを送信したいと考えています。以降の api.domina.com へのすべてのリクエストでは、自動的にセッションが使用されます。
これで問題ないと思われる場合、これを機能させるにはどうすればよいでしょうか。トークンはセッションから読み取られ、クエリ パラメータとして access_token を追加しなくてもベアラー認証が機能します。
passport.serializeUser(function(user, done) {
console.log("serializeUser: " + JSON.stringify(user));
done(null, "1234");
});
passport.deserializeUser(function(token, done) {
console.log("deserializeUser:"+ token);
// trying to set a parameter in the req object
done(null, {access_token:token});
});