Meteor Restivus: держать пользователя авторизованным, если он заходит на основной сайт

У меня есть расширение Chrome, которое связывается с моим приложением Meteor через REST API, созданный с помощью пакета Restivus.

Пользователь аутентифицируется в REST API и затем использует аутентифицированные токены для выполнения дальнейших запросов.

Пока что все работает нормально, пока он остается в расширении. Однако из расширения Chrome я бы хотел перенаправить пользователя на страницу его профиля на моем основном веб-сайте. Когда это происходит, он больше не проходит проверку подлинности и должен повторно войти в систему, чтобы получить доступ к странице профиля.

Я полагаю, это потому, что сеанс REST API и сеанс веб-страницы - это два совершенно разных сеанса на сервере (хотя и API, и веб-страница запускаются с одного сервера). У меня вопрос, есть ли способ сохранить состояние входа пользователя в систему при его переходе с расширения на основной сайт?

Я думаю, что есть несколько вариантов:

  1. Я использую стандартный пакет учетных записей метеоров. Есть ли способ отправить любые стандартные файлы cookie / данные, которые использует пакет учетных записей, в браузер пользователя, чтобы при посещении веб-сайта он считался вошедшим в систему?
  2. Передайте пользовательский файл cookie пользователю, который я затем проверю и войду в него, когда он впервые зайдет на сайт. Однако я не знаю, как протолкнуть cookie-файл через REST API или создать его в расширении Chrome.
  3. Используйте DDP для связи со вторым сеансом и передачи учетных данных для входа.

Я не знаю, являются ли это лучшими вариантами (или даже как их реализовать, если они есть...). Кто-нибудь уже нашел способ сделать это уже? Спасибо!

1 ответ

Я бы посоветовал вам разработать собственный поток аутентификации с использованием токена в качестве параметра URL. Вы должны добиться аналогичного опыта, который обеспечивает Slack с помощью магических ссылок аутентификации.

Идея состоит в том, чтобы сгенерировать токен и добавить его в Meteor.users Коллекция для пользователя, вошедшего в расширение Chrome.

Затем перенаправьте пользователя на URL с токеном в качестве параметра. Приложение проверяет, какой пользователь связан с этим токеном, и регистрирует его.

Вы можете получить вдохновение о том, что делается в пакете учетной записи для обработки ссылок регистрации и сброса, или в пакете без пароля

Другие вопросы по тегам