Я создаю веб-приложение в 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 - то место, где я нажимаю последовательность мыслей «Я скопировал пример кода, и теперь не знаю, что происходит».
Это некоторые общие вопросы, и любой из них помогает понять, как проверять подлинность и управлять логинами пользователей, СУПЕР приветствуется. Все, что я пробовал несколько недель, к сожалению, закончилось разочарованием. Спасибо за чтение!