私はユーザーログインを含むSails.jsアプリケーションを構築しています。ドキュメントが指示したようで、ユーザの兆候は、セッションがそれに応じてセッション中に彼女のIDを記録するとき、:Sails.jsとのセッションで完全なユーザー情報を安全に保存できますか?
req.session.userId = createdUser.id;
例のほとんどで
は、各ルートは、それが存在だ場合、このIDのルックアップを実行し、送信します見つかった場合、認証されたユーザーをビューに追加します。これは私に非常に非効率的なものです。左上に彼女の名前を表示するには、ログインしたユーザーがいるかどうかをすべてのビューで確認する必要があります。したがって、すべてのルートでこのルックアップを実行するポリシーを作成してコードの量を減らしても、すべてのビューにはデータベースを使用してユーザーを検索することができます。
私はというだろうが、彼女が認証されると、その情報が自動的にすべてのビューに存在するように、セッション中にユーザーの情報を記録している。
req.session.userId = createdUser.id;
createdUser.loggedIn = true;
req.session.user = createdUser;
// the createdUser object does NOT contain the encrypted password or other sensitive info
この後、私はちょうどにチェックすることができますlayout
親テンプレート(および任意の子テンプレート)のように、サインインしたユーザーのテンプレート。 (私はサーバー側のビューを使用しています)。
{% if (session.user && session.user.loggedIn) %}
<li><a href="/profile/{{ session.user.id }}">Hi there, {{ session.user.username }}</a></li>
{% else %}
<li><a href="/signin">Sign In (if you want)</a></li>
{% endif %}
私の質問は、これはあらゆる種類のセキュリティ上のリスクがあるかどうかです。これは、すべてのビューでユーザーを検索するよりも効率的ですが、文書がこれを助言しているような理由が考えられます。実施例のほとんどで
ちょうど私が必要としたものです - ありがとう! –