Laravel, как связать логин между 2 сайтами? - PullRequest
0 голосов
/ 27 января 2019

В настоящее время я использую Laravel Socialite для связи между Facebook и моим первым сайтом.У меня есть 2 сайта, которые уже опубликованы, скажем, first_web.com и second_web.com.

То, что я пытаюсь сделать, это то, что после того, как пользователь войдет (используя facebook acc) в first_web.com, в любое время, когда пользователь захочет перейти на second_web.com, он автоматически входит в систему, используяfacebook acc.

Я провел исследование, но нет учебника или примера, которые бы это делали.Есть идеи как этого добиться?

1 Ответ

0 голосов
/ 27 января 2019

На мой взгляд, это может быть решено так: (но я должен предупредить, что лично мне не нравится способ входа на несколько веб-сайтов одним вызовом, и есть лучший способчтобы сделать это в соответствии со своими потребностями - использовать метод call-to-auth, как Google, когда вы перенаправляете на их веб-сайт и выбираете свою учетную запись google - одно перенаправление на один звонок):

  1. Прежде всего, вы должны понимать, что вы должны сохранить токен в обоих клиентских браузерах - на обоих ваших веб-сайтах нет возможности использовать один и тот же JWT или Cookie между несколькими сайтами - это небезопасно, небезопасно и не логично, поэтому вам нужно создать два токена.(Я не говорю о сайтах с одним доменом, я говорю о разных сайтах на разных доменах)

  2. Вы можете использовать подход JSON Web Token JWT .Для вашего проекта вы можете использовать Laravel Passport или tymondesigns / jwt-auth в соответствии с руководством по установке.

  3. После успешного API Socialite-вызов - необходимо создать токен JWT (используя пакеты из точки # 1) и сохранить его в браузере клиента для первого веб-сайта - Cookie или локальное хранилище JavaScript -выберите себе, какой путь лучше для ваших нужд.(вы найдете множество примеров в поиске по этому поводу).

  4. Затем с первого веб-сайта сделайте AJAX-вызов (из используемой клиентской среды JavaScript) в API.с уже предоставленными учетными данными - вы будете перенаправлены, выбрав свой социальный аккаунт и т. д.

  5. А теперь я хотел бы задать вопрос модальному окну: «Хотите поделиться своими данными снаш сайт № 2 ", и здесь есть второй вызов API Socialite с перенаправлением.Невозможно запретить использование многократного перенаправления на ваш социальный сайт из-за внутренней безопасности большинства поставщиков социальных сетей.

  6. Перенаправление после вашего API для второго сайта и сохранение второготокен во второй сайт клиент-браузер.

  7. Переадресация на первый веб-сайт вызывающего абонента.

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

Удачи!

...