2016-08-02 3 views
1

findMe(req、res)というユーザーコントローラでアクションを呼び出すために、新しいエンドポイント "/ user/me"を作成したいと思います。 findOne(req、res)にルーティングする青写真 "/ user /:id"とほぼ同じように動作したいと思います。ただし、ログインしているユーザーのIDに基づいて現在のユーザーのデータを返します(req 。セッションのログイン後)。sails.jsでfindOneをラップするfindMeを作成するユーザーコントローラ

findMeを書くことで、findOneにユーザIDを渡し、残りのリクエスト処理をコアセイルのfindOneアクションに任せることができますか?

私は、UserモデルのfindOneメソッドで直接操作するのではなく、ユーザーコントローラでfindOneを使用したいと思っています。これは、?polulate = ...パラメータなどを尊重するなどの利点が追加されているためです。これが悪い考えかどうか教えてください。私はセキュリティの影響を少し心配しています - 悪意のあるユーザーが偽造/ユーザー/私要求を介して他のユーザーのデータにアクセスする可能性がありますか?

私はこれをサーバー側のリダイレクト(クライアント側のリダイレクト/ 30xとは異なります)と認識しています。

おかげ アダム

答えて

0

あなたは完全にコントローラからの青写真にアクセスすることができます。これは、あなたがreq.session.user.idとしてセッション内でユーザーIDを保存する場合は、あなたがそれを行うだろうかです:

// UserController.js 

module.exports = { 

    me: function (req, res) { 
    req.params.id = req.session.user.id; 
    return sails.hooks.blueprints.middleware.findone(req, res); 
    } 

}; 

しかし、これはあなたがそのようなpopulateなどの他のparamsを使用することはできません。

私は個人的には自分の行動を実装すべきだと思っています。これは実際には複雑ではなく、要求を保護しやすくなります。

関連する問題