私たちはどのようなセッションについて話しているのですか?
Cookie セッションの場合: すべてをシリアライズすると、クライアントのヘッダーが大量になり (遅い/大きなリクエスト)、リクエストごとにサーバーに負担がかかります。
データベースに支援されたセッションの場合: 小さなセッション ID を Cookie に保存すると、どのような場合でもセッション オブジェクトについてデータベースにクエリを実行する必要があります。
そのクエリを使用して、セッション ID ではなくユーザー ID を Cookie に保存することにより、代わりに完全なユーザー オブジェクトを取得します。
最後のオプション:
- のデータからユーザー オブジェクトをインスタンス化する方法を理解して
sequelize
ください。私はその ORM を使用していませんが、私が使用した他の ORM のもの (マングース) を使用すると、データからオブジェクトをインスタンス化できます。これにより、欠落しているすべての便利なメソッドにアクセスできます。
編集: ドキュメントから、セッション ( ) に保存された JSON を取得し、session.user
次のようにユーザー インスタンスを復元できると考えています。
var restoredUserInstance = MyUserModel.build(session.user);
ユーザー モデルの JSON にはおそらく主キー (電子メールまたはユーザー名など) が含まれて restoredUserInstance.save()
いるため、他のすべてのメソッドを期待どおりに使用できます (保存すると更新されるなど)。それが機能しない場合はお知らせください。ドキュメント/コードをさらに掘り下げます。
DB を呼び出さずに JSON からインスタンスをインスタンス化する方法の次の説明を見て、見つけましたfind()
: https://github.com/sdepold/sequelize/issues/191