Как автоматически войти / зарегистрировать пользователя при отправке формы? - PullRequest
0 голосов
/ 29 января 2019

У меня есть сайт под управлением Node.JS + Express + Socket.IO.Я использую MongoDB в качестве базы данных.

У меня есть страница, на этой странице, когда пользователь нажимает кнопку, я открываю модальный Bootstrap с формой регистрации для пользователя.Пользователь может выбрать форму входа в этом модале.

У меня есть 3 события на сервере Socket.IO и 3 события на клиенте Socket.IO.Это,

Client                       Server
-----------------------------------
|                                 |
|       User Clicks Button        |
|------------------------------->>|
|                                 |
|  Server emits 'register' event  |
|<<-------------------------------|
|                                 |
|     Client catches 'register'   |
|  and opens register/login form  |
|    Fills the form and submits   |
| Client emits 'submit-register'  |
|             Event               |
|------------------------------->>|
|                                 |
|   Server checks the submitted   |
|form data and emits 'registered' |
|  event if user is successfully  |
| registered to database, if not  |
|  emits 'register-error' event   |
|<<-------------------------------|
|                                 |
|  User catches 'register-error'  |
|  or 'registered' events and a   |
| user opens it's session automa- |
|  tically without page refresh   |
|---------------------------------|

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

У меня нет никакой идеи сделать это, спасибо.Хорошего дня!

1 Ответ

0 голосов
/ 29 января 2019

Я бы предложил использовать стратегию passport-local .Это позволит вам настроить аутентификацию пользователя через ваш сервер (узел + экспресс) - и когда аутентификация будет завершена (либо вход в систему или регистрация) - отправьте ответ обратно вашему клиенту.

На вашем клиенте, если вывы используете любой тип JS-фреймворка, который имеет http-запрос, основанный на обещаниях, вы можете дождаться ответа, а затем выбрать, что произойдет, основываясь на ответе, который ваш сервер предоставляет клиенту.

Вот прямой пример использованияузел, паспорт, vue и axios: https://blog.jscrambler.com/vue-js-authentication-system-with-node-js-backend

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...