Проверка подлинности паспорта в Sails не работает на поддоменах при использовании vhost - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть приложение Sails, и аутентификация с использованием паспорта прекрасно работает, когда это приложение для одного домена (шаги, как в Passport Doc ).Сейчас я пытаюсь преобразовать приложение в субдомены (foo.example.com, bar.example.com), все из которых указывают на один и тот же парусный сервер.Сеанс работает только для одного и того же субдомена, например, если пользователь входит в систему с foo.example.com, он может получить доступ к страницам в том же субдомене ... но не в bar.example.ком.req.isAuthenticated () возвращает false при перенаправлении на поддомен, отличный от того, который был аутентифицирован.

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

Я использую Sails @ 1.1.0 / passport @ 0.4.0.

1 Ответ

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

Из коробки Sails использует экспресс-сеанс для промежуточного программного обеспечения сеанса, позволяя приложениям поддерживать все те же функциональные возможности, которые доступны в пакете экспресс-сеанса.

Для облегчения совместного использования одного сеанса между несколькими поддоменами (foo.example.com, bar.example.com), в файле config / session.js вашего приложения Sails необходимо настроить две опции.

session: {
  cookie: {
    domain : '.example.com',
    sameSite : false
  }
} 
  1. cookie.domain: здесь указываетсязначение атрибута «Набор файлов cookie».По умолчанию домен не задан, и большинство клиентов считают, что файл cookie применяется только к текущему домену.
  2. cookie.sameSite: указывает логическое значение или строку в качестве значения для атрибута SameSite Set-Cookie.
    • true установит для атрибута SameSite значение Strict для строгого принудительного применения сайта.
    • false не установит атрибут SameSite.

ItСтоит отметить, что cookie.sameSite - это атрибут, который еще не полностью стандартизирован и может измениться в будущем.Это также означает, что многие клиенты могут игнорировать этот атрибут, пока не поймут его.

Скорее всего, по этой причине он не включен в документацию Sails здесь .Более полный список доступных опций для экспресс-сессии можно найти здесь .

В этом вопросе stackoverflow можно найти другой способ управления сеансами в нескольких поддоменах.

...