Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 Laravel 6/7/8/9/10 » Как получить данные в web из api ? » 11.12.2020 10:45:42

Serghei
Ответов: 0

Здраствуйте!

Есть сайт X. На нем есть ссылка на сайт Y.

При нажатии на этой ссылки, сайт X используя Laravel Passport создает access_token.

Этот access_token, вместе с другими данными аутентифицированного пользователя, отправляет методом POST сайту Y используя API по ссылке /get-token-cpc.

Сайт Y, в routes/api.php имеет такие маршруты:

Route::middleware('auth:api')->get('/user', function (Request $request) {
    return $request->user();
});

Route::post('/get-token-cpc', [AuthCPCController::class, 'authenticate_user_cpc'])->name('authenticate_user_cpc');

В методе  'authenticate_user_cpc' из контроллера AuthCPCController::class, добавляються данные в сессию полученные с сайта X.

        session([
            'access_token' => $token_data['access_token'],
            'token_type' => $token_data['token_type'],
            'expires_at' => $token_data['expires_at'],
        ]);

Для того чтобы убедиться что данные добавились в сессию, в AuthCPCController, в конце метода 'authenticate_user_cpc', добавил лог.

Log::info('In API Session has access_token '.session()->has('access_token'));

При нажатиий на ссылку с сайта X, переходим в сайт Y и в логах записываеться что данные добавились в сессию.


Также Сайт Y, в routes/web.php имеет такой маршрут:

Route::get('/', [PageController::class, 'index'])->name('index');

Проблема в том что, в конструкторе контроллера PageController, я немогу получить данные из сессий, которые были полученные по API.

Содержимое контруктора PageController:

public function __construct(){

        $session_has_access_token = session()->has('access_token');

        dump($session_has_access_token);
}

В результате, dump выводит null.


Как использовать полученные данные из API в контроллере из web ?

Подвал раздела