2015-11-02 3 views
0

У меня есть конечная точка REST, которая отправляется с объектом JSON (Пользователь), и я просто установил соответствующую запись монго в этот объект JSON. Это избавляет меня от необходимости обновлять изменения схемы в методе службы, а конечная точка оставляет только модель Mongoose для обновления.Обновление схемы Mongoose с объектом JSON через конечную точку REST

Что было бы более безопасным способом сделать это, если таковое имеется?

JSON Пример пользователя

{ 
    'fname': 'Bill', 
    'lname': 'Williams', 
    'email': '[email protected]', 
    'settings': { 
    'strokeColor': '#FF0000' 
    } 
} 

С моей угловыми службы

Update: function(my_user) { 
    return $http.put('http://api.domain.com/v1/api/users/' + _user.id, { 
    user: my_user, 
    token: window.localStorage['token'] 
    }); 
} 

Моя REST конечной точки в узле

api.route('/users/:user_id') 
    .put(function(req, res) { 

    User.findById(req.params.user_id, function(err, user) { 
     userData = req.body.user; 

     if (user) { 
     //-- This is potential trouble area? 
     User.update({'_id': user._id}, {$set: userData}); 

     user.save(function(err) { 
      res.json({ 
      success: true, 
      message: 'User updated' 
      }); 
    }); //-- end findById() 
}); //-- end /users/:user_id put() route 
+0

Вы должны обязательно подтвердить этот объект, чтобы убедиться, что он имеет только ключи, которые конкретному пользователю разрешено обновлять/добавлять, и что пользователю разрешено обновлять эту конкретную запись пользователя. –

ответ

0

Посмотрите на Jsonwebtoken.

Это в основном работает следующим образом:

  1. Создание REST конечной точки, которая позволяет пользователям aquire маркера с определенной полезной нагрузки (ид, например)
  2. Закрепить соответствующую часть вашего API с промежуточным Jsonwebtoken (при использовании экспресс в качестве веб-сервера)
  3. Пользователь добавляет маркер к каждому заголовка запроса (с помощью $ httpInterceptor)
  4. токен проверяется на стороне сервера перед тем в запрос достигнет вашего API

Токены могут истекать через определенное время (полезно, когда пользователи должны зарегистрироваться в первую очередь), что добавляет дополнительную безопасность.

+0

В настоящее время я использую JWT, я больше беспокоюсь о том, что человек действительно прошел аутентификацию и каким-то образом манипулирует своими JSON и POST. –

+0

Хорошо, мне интересно, как другие могут ответить на этот вопрос. BTW: Почему вы обновляете И сохраняете пользователя. Одного из них должно быть достаточно. –

Смежные вопросы