Laravel Passport Auth Stuck при запуске в автономном проекте для аутентификации токена на основе пароля - PullRequest
0 голосов
/ 29 июня 2018

Laravel Passport Auth Зависает при запуске на собственном сервере и клиенте в одном проекте для аутентификации токена на основе пароля

LoginController

public function authenticaterrr(Request $request)

{
     $http = new Client();

    try{
                //dd("Hello");

        $response = $http->post(url('oauth/token'), [
        'form_params' => [
            'grant_type' => 'password',
            'client_id' => '2',
            'client_secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
            // 'username' => $request->get('username'),
            // 'password' => $request->get('password'),
              'username' => 'xxxxxx@xxxxx.com',
                'password' => 'xxxxx',
            'scope'     => '*',
         ],
         ]);

       //  $apiResponse = json_decode((string) $response->getBody(), true);

       // dd($apiResponse);
         $apiResponse = json_decode((string) $response->getBody(), true);

        dd($apiResponse);
        session(['api'=> $apiResponse]);
        session(['api-token'=> $apiResponse['access_token']]);
        return json_decode($response->getBody(), true);
    }catch (ClientException $exception){
        dd("Hello");
        return json_decode($exception->getResponse()->getBody(), true);
    }
}

IN Web.php

Route::get('/auth/api/validate', 'Auth\LoginController@authenticaterrr');

В PostMan не получилось и застряло Вот вывод

Если я создам новый проект и воспользуюсь им, то это будет работать для меня, так что бы было решением запустить в том же проекте

Ответы [ 2 ]

0 голосов
/ 02 сентября 2018

Если вы запускаете ваше веб-приложение на встроенном PHP-сервере / php artisan serve, то второй auth/token запрос на паспорт "убивает" первый authenticaterrr HTTP-запрос.

Это потому, что встроенный PHP-сервер однопоточный .

Престижность / кредит этот комментарий .

0 голосов
/ 29 июня 2018

https://stackoverflow.com/a/51010186/8735680

function tokenRequest(Request $request){

  $request->request->add([
                "grant_type" => "password",
                "username" => $request->username,
                "password" => $request->password,
                "client_id"     => "x",
                "client_secret" => "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        ]);

        $tokenRequest = $request->create(
                env('APP_URL').'/oauth/token',
                'post'
        );

        $instance = Route::dispatch($tokenRequest);

        return json_decode($instance->getContent());

}
...