2017-01-12 5 views
6

Я установил laravel 5.3 и паспорт pakage. Я последовал шаг documentaition за шагом я могу использовать следующий маршрут POST /oauth/token со следующими параметрамизарегистрировать нового пользователя из маршрута api с использованием паспорта laravel

  1. имя пользователя
  2. пароль
  3. client_secret
  4. grant_type
  5. client_id

и Я получаю следующий ответ

{ 
    "token_type": "Bearer", 
    "expires_in": 31536000, 
    "access_token": "access token here", 
    "refresh_token": "refresh token here" 
} 

я прошу GET /api/user

со следующим заголовком

  1. авторизации = "однонаправленного маркер доступа здесь"
  2. принимаем = применение/JSON (необязательно)

и это хорошо работает, и поэтому все apis.

проблема у меня есть пользователь, который я authinticated и вошел в его имя пользователя и пароль в первом запросе и вернуть меня обратно маркер доступа является пользователь, я создал из Laravel веб-просмотра/регистрация

Как я могу создать новый пользователь или регистрацию нового пользователя из апи маршрут файла

как POST /api/register

пользователя в первый раз необходимо зарегистрироваться, чтобы быть authinticated после этого.

Должен ли я создать этот маршрут без oauth для регистрации, а затем, если успех регистрации, он запрашивает POST /oauth/token для проверки или что? Я что-то не хватает ???

обновление clent_secret это право быть постоянным во всех запросах пользователей или каждый пользователь должен имеют различные clent_secret, и если это то, как создать aclent секрет, если он neaded в authinticate пользователя?

ответ

0

Самый быстрый способ сделать это, добавив исключение к классу verifyCsrfToken.php

protected $except = [ 
     'register' 
    ]; 

Тогда вы можете оставить в модели регистра, а затем доступ к аккаунту с помощью OAuth/маркера.

0

Если я правильно понимаю ваш вопрос, вы хотите зарегистрировать нового пользователя и получить токен после регистрации от /oauth/token. Для этого вы можете использовать прокси. Я использовал что-то подобное, и я выполнил следующие шаги.Это работает как Логин и Регистрация

  1. Регистрация пользователя и отправить запрос HTTP к /oauth/token конечной точке из метода регистра

    public function register(RegisterRequest $request) 
    { 
        $user = User::create($request->all()); 
    
        $response = $this->authenticationProxy->attemptLogin($request->email, $request->password); 
        return response()->json(compact('response', 'user'), 201); 
    } 
    
  2. Затем в proxy классе, вызовите /oauth/token

    public function attemptLogin($email, $password) 
    { 
        $http = new GuzzleHttp\Client; 
    
        $response = $http->post('http://your-app.com/oauth/token', [ 
         'form_params' => [ 
          'grant_type' => 'password', 
          'client_id' => env('CLIENT_ID'), 
          'client_secret' => env('CLIENT_SECRET'), 
          'username' => $email, 
          'password' => $password, 
          'scope' => '', 
         ], 
        ]); 
    
        return json_decode((string) $response->getBody(), true); 
    } 
    

Надеюсь, что он LPS. Вы можете использовать аналогичный подход для входа в систему.