Итак, когда вы отвечаете (на стороне сервера) на маршрут /forgot-password
, что является лучшим ответом на него? (В ситуации, когда вы не хотите показывать, какие пользователи у вас есть в БД, и все же намекаете приложению, что пользователь не существует)
Сегодня я столкнулся с этим сценарием, в котором я отвечаю по этому маршруту с 200, но мой коллега, который работает над его приложением, хотел, чтобы я отправил сообщение об ошибке, чтобы он мог реализовать форму восстановления SMS.
Представьте себе это:
POST /forget-password
Body: { username: 'test' }
И вы отвечаете 404/400 и сообщением об ошибке вроде:
{
statusCode: 404,
message: 'User not found'
}
Это хорошая практика? Или нет?
Почему я спрашиваю это? Когда вы отвечаете клиенту с 404, вы указываете, какие имена пользователей есть в вашей базе данных, и это может быть брешей в безопасности.
Каков наилучший подход и почему?
По-моему, я предполагаю, что вы должны ответить 200, в любом случае, чтобы не допустить каких-либо сценариев для клиента.