Laravel - несколько проектов с единым входом - PullRequest
1 голос
/ 03 февраля 2020

Мне просто нужно предложение относительно единого входа для нескольких приложений laravel. Это связано с той же базой данных и той же таблицей пользователей. Концепция похожа на систему ERP, где она имеет кнопку множественного выбора, которая связана с другим приложением, и имеет следующие шаги:

 1) Login/Register (APP1) 
 2) Redirect to ERP Home(APP1) 
 3) Select another app and redirect to app2(APP2) 
 4) Auto login based on APP1 authentication(APP2)

Таким образом, APP1 будет основным, а аутентификация другого приложения зависит от APP1. Любое предложение? Пока у меня есть go через laravel паспорт и документацию jwt api, и это сильно отличается от моих целей.

Могу ли я пропустить сеанс с помощью кнопки HREF ? : (

Спасибо!

Ответы [ 2 ]

1 голос
/ 03 февраля 2020

Я просто делюсь своими мыслями.

Процесс:

  1. Создать систему токенов для общения в двух приложениях.

  2. Токен будет нести идентификатор пользователя или любой уникальный идентификатор.

  3. Если сгенерированный APP1 временный токен сопоставляется с APP2, то декодируйте токен и получите уникальный идентификатор пользователя.

  4. вручную войти в систему пользователя в APP2

Вы можете войти в систему любого пользователя вручную.

Auth::login($user);
0 голосов
/ 06 февраля 2020

Наконец, я могу передать идентификатор пользователя через url и получить его с маршрута :) Вот окончательный код на случай, если у кого-то возникнет такая же проблема:)

Домен 1

Ссылка URL через кнопку

<a href="http://domain1.com/autologin?id={{ auth::id() }}&api_token=token">Pass uid</a>

Домен 2

Убедитесь, что маршрут автологина находится в промежуточном веб-приложении.

web. php

Route::group(['middleware' => ['web']], function () {
    Route::get('autologin', function () {
        $user = $_GET['id'];
        Auth::loginUsingId($user, true);
        return redirect()->intended('/dashboard');
    });
});

Удачи и спасибо ;)

...