2017-02-20 2 views
0

Я разрабатываю API REST с использованием Laravel 5.4 (паспорт).Получите бонусы за выдачу пароля без запроса http для паспорта Laravel

Я хочу, чтобы пользователь получал токен доступа при регистрации, не делая другого HTTP-запроса. Я прошел тщательную документацию по Laravel. но нет прямого способа получить токен доступа. что-то вроде: -

$token = $user->getOathToken($user_id); 

Паспорт документации password grant token

В документации они дают что-то вроде этого:

$http = new GuzzleHttp\Client; 

    $response = $http->post('http://your-app.com/oauth/token', [ 
     'form_params' => [ 
      'grant_type' => 'refresh_token', 
      'refresh_token' => 'the-refresh-token', 
      'client_id' => 'client-id', 
      'client_secret' => 'client-secret', 
      'scope' => '', 
     ], 
    ]); 

return json_decode((string) $response->getBody(), true); 

Я не хочу, чтобы сделать еще один запрос HTTP. есть ли способ избежать этого?

ответ

1

Существует не метод для выполнения того, что вы хотите сделать. Вы можете посмотреть на

\Laravel\Passport\Http\Controllers\[email protected] 

который является метод контроллера, который обрабатывает /oauth/token маршрут. И посмотрите на передачу необходимых параметров, не делая это как запрос POST.

+1

Не очевидно ли, чтобы обеспечить этот тип функциональности, или я что-то пропустил о рабочем процессе паспорта? –

+1

Не совсем, паспорт предназначен для того, чтобы пользователи могли генерировать маркеры для себя для сторонних приложений или при входе в приложение для 1-го участника (используя грант пароля). Вы можете использовать токен CSRF в заголовке канала удостоверения подлинности, для «локальных» запросов, так как аутентифицируется локально обслуживаемый интерфейс vuejs. – Joe