Meteor Restivus: держать пользователя авторизованным, если он заходит на основной сайт
У меня есть расширение Chrome, которое связывается с моим приложением Meteor через REST API, созданный с помощью пакета Restivus.
Пользователь аутентифицируется в REST API и затем использует аутентифицированные токены для выполнения дальнейших запросов.
Пока что все работает нормально, пока он остается в расширении. Однако из расширения Chrome я бы хотел перенаправить пользователя на страницу его профиля на моем основном веб-сайте. Когда это происходит, он больше не проходит проверку подлинности и должен повторно войти в систему, чтобы получить доступ к странице профиля.
Я полагаю, это потому, что сеанс REST API и сеанс веб-страницы - это два совершенно разных сеанса на сервере (хотя и API, и веб-страница запускаются с одного сервера). У меня вопрос, есть ли способ сохранить состояние входа пользователя в систему при его переходе с расширения на основной сайт?
Я думаю, что есть несколько вариантов:
- Я использую стандартный пакет учетных записей метеоров. Есть ли способ отправить любые стандартные файлы cookie / данные, которые использует пакет учетных записей, в браузер пользователя, чтобы при посещении веб-сайта он считался вошедшим в систему?
- Передайте пользовательский файл cookie пользователю, который я затем проверю и войду в него, когда он впервые зайдет на сайт. Однако я не знаю, как протолкнуть cookie-файл через REST API или создать его в расширении Chrome.
- Используйте DDP для связи со вторым сеансом и передачи учетных данных для входа.
Я не знаю, являются ли это лучшими вариантами (или даже как их реализовать, если они есть...). Кто-нибудь уже нашел способ сделать это уже? Спасибо!
1 ответ
Я бы посоветовал вам разработать собственный поток аутентификации с использованием токена в качестве параметра URL. Вы должны добиться аналогичного опыта, который обеспечивает Slack с помощью магических ссылок аутентификации.
Идея состоит в том, чтобы сгенерировать токен и добавить его в Meteor.users
Коллекция для пользователя, вошедшего в расширение Chrome.
Затем перенаправьте пользователя на URL с токеном в качестве параметра. Приложение проверяет, какой пользователь связан с этим токеном, и регистрирует его.
Вы можете получить вдохновение о том, что делается в пакете учетной записи для обработки ссылок регистрации и сброса, или в пакете без пароля