Перенаправление входа по паспорту

#node.js #passport.js #passport-facebook

#node.js #passport.js #passport-facebook

Вопрос:

Я использую passport-facebook для входа на сайт с facebook (реализация завершена и работает хорошо) . Теперь я хочу перенаправить пользователя на страницу, содержащую форму, которую они должны заполнить после входа в систему с fb, и без этого (то есть без заполнения формы и отправки ее) они не смогут получить доступ к каким-либо другим ссылкам на сайте.

Вот подход, о котором я подумал: как только пользователь войдет в систему, я сделаю запрос к базе данных внутри стратегии, чтобы узнать, отправлял ли он ранее данные, если они уже отправлены, я установлю session.filledOrNot = true в объекте, который я буду возвращать к выполненному обратному вызову, и использую это свойство, чтобы либо разрешить им продолжить, либо перенаправить обратно на ту же страницу.

Хороший ли это подход?

Ответ №1:

Это можно сделать двумя способами.

1. Вы можете либо заставить пользователя заполнить форму во время регистрации (как бы вы это ни называли). Если пользователь не заполняет форму, не разрешайте ему регистрироваться вообще.

2. Второй способ — это то, что вы предлагаете. Позвольте пользователю зарегистрироваться, не заполняя форму, и как только пользователь войдет в систему, проверьте в своей базе данных, где находится ваше условие «сеанс.filledOrNot = true» удовлетворен или нет. Недостатком является то, что вам нужно выполнять этот запрос в каждом запросе api, а не только в запросе входа.

Комментарии:

1. Я использую второй способ, хотя я запрашиваю экземпляр пользователя из базы данных для каждого запроса, который содержит registrationDone логическое значение, требующее завершения регистрации перед доступом к защищенным маршрутам.

2. я не был уверен, является ли настройка данных сеанса для тестирования обычным подходом, которому обычно следуют, или это то, что я не должен был пробовать! Спасибо 🙂