Логика для обработки входа пользователя в приложение Node / Vuejs - PullRequest
0 голосов
/ 17 января 2019

Я создаю веб-приложение в Vuejs и снова столкнулся с той же проблемой.

Короче говоря, я разрешаю пользователям регистрироваться, используя свою учетную запись Twitch (Войти через Twitch), и это прекрасно работает. Мой вопрос больше касается общей архитектуры одностраничного приложения в отношении входа в систему сторонним сервисом.

Мой стек - Nodejs, Vuejs для внешнего интерфейса и connect-mongo для обработки сеанса в моей базе данных Mongo.

Мои вопросы немного более общие:

1) как только пользователь входит в систему с помощью Twitch, у меня есть access_token и refresh_token вместе с объектом профиля. Что я должен делать с этими вещами? Создать объект пользователя в моей базе данных с токенами?

2) connect-mongo работает нормально - он устанавливает запись в моей таблице Mongo db sessions. Опять же - я должен что-то делать с этими данными или это просто управление входами пользователей за кулисы?

3) Я хотел бы использовать это состояние входа в систему на веб-интерфейсе (например, отправлять пользователя обратно на страницу входа, если он пытается получить доступ к странице только для членов) - с точки зрения внешнего интерфейса, что можно "проверить", чтобы узнать, вошел ли пользователь в систему? Из логина Twitch установлено множество файлов cookie, но я понятия не имею, что означает какое-либо из них.

4) Если срок их входа истек, как я могу заставить их войти снова?

Еще одна информация заключается в том, что я не собираю информацию о них, когда их нет на сайте. Логин Twitch предназначен только для того, чтобы получить его профиль для настройки их опыта.

Я видел сто потоковых диаграмм процесса входа в Oauth, но ни одна из них не изложена с точки зрения непрофессионала. По крайней мере, ничего из того, что я нашел, - похоже, что происходят десятки рукопожатий, но я понятия не имею, что на самом деле происходит в контексте моего приложения после входа в систему. Множество случайных цепочек символов и жетонов, летающих вокруг, не так много для объяснения.

Вот мой код сервера: https://github.com/gedrick/multitwitch/blob/master/server.js

около строки 70 - то место, где я нажимаю последовательность мыслей «Я скопировал пример кода, и теперь не знаю, что происходит».

Это некоторые общие вопросы, и любой из них помогает понять, как проверять подлинность и управлять логинами пользователей, СУПЕР приветствуется. Все, что я пробовал несколько недель, к сожалению, закончилось разочарованием. Спасибо за чтение!

1 Ответ

0 голосов
/ 06 февраля 2019

Надеюсь, это не считается мошенничеством, но я собрал полную демонстрацию входа / аутентификации в Passport. Он использует Mongo для хранения пользователя и его токенов.

https://github.com/gedrick/vue-node-passport

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