Простая аутентификация с использованием Laravel Passport

Я новичок в мире API.

Имея в виду и основываясь на интернет-исследованиях, я предполагаю, что именно так работает базовая аутентификация API (пожалуйста, поправьте меня, если я ошибаюсь)

  • Клиент (например, мобильное приложение), отправьте запрос на сервер, указав имя пользователя / адрес электронной почты и пароль, введенные из мобильного приложения.

  • Сервер проверит эти учетные данные и, если они верны, создаст токен доступа и отправит обратно в ответ

  • Для всех других последующих запросов клиент отправит этот токен в запросе, чтобы сервер мог аутентифицировать запрос.

В принципе, я хочу добиться в Laravel того, что описано выше, поэтому я обнаружил, что есть пакет под названием Laravel Passport, который может быть полезным:

https://laravel.com/docs/master/passport

Чего я не понимаю, так это параметров запроса на получение токена доступа:

https://laravel.com/docs/master/passport#password-grant-tokens

$http = new GuzzleHttp\Client;

$response = $http->post('http://your-app.com/oauth/token', [
    'form_params' => [
        'grant_type' => 'password',
        'client_id' => 'client-id',
        'client_secret' => 'client-secret',
        'username' => '[email protected]',
        'password' => 'my-password',
        'scope' => '',
    ],
]);

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

Я думал, чтобы просто получить токен доступа, достаточно параметров электронной почты / имени пользователя и пароля. Поэтому меня смущают дополнительные параметры в приведенном выше запросе.

Я прочитал весь документ, но не понял, как я могу использовать его для достижения того, чего хочу.

Итак, вопрос в том, могу ли я использовать этот пакет для нужд? Если да, то как? Если нет, то предложите мне другие пакеты.

Спасибо


person Parth Vora    schedule 09.05.2017    source источник
comment
Ваши требования стандартны для аутентификации на основе API, и Laravel Passport идеально подходит для того, чего вы хотите достичь. Просто погуглите, и вы найдете руководства, как реализовать ваши требования.   -  person Sapnesh Naik    schedule 09.05.2017
comment
code.tutsplus.com/courses/build-a-rest- api-with-laravel - отличный учебник, точно отвечающий вашим требованиям.   -  person Sapnesh Naik    schedule 09.05.2017
comment
@SapneshNaik, вопрос отредактировал. Вы можете просто показать мне запрос на получение токена доступа с использованием паспорта Laravel?   -  person Parth Vora    schedule 09.05.2017


Ответы (1)


Объяснить client_id и client_secret в простой и одной строке непросто. OAuth 2 - это структура авторизации, которая позволяет приложениям получать ограниченный доступ к учетным записям пользователей в службе HTTP, такой как Facebook, GitHub и DigitalOcean. Он работает, делегируя аутентификацию пользователя службе, в которой размещена учетная запись пользователя, и разрешая сторонним приложениям доступ к учетной записи пользователя. OAuth 2 обеспечивает потоки авторизации для веб-приложений, настольных приложений и мобильных устройств.

Это информационное руководство предназначено для разработчиков приложений и содержит обзор ролей OAuth 2, типов предоставления авторизации, вариантов использования и потоков.

Клиент - это приложение, которое хочет получить доступ к учетной записи пользователя. Прежде чем он сможет это сделать, он должен быть авторизован пользователем, и авторизация должна быть подтверждена API.

возможно, вы получите ответ по этой ссылке ниже Введение в OAuth 2

person Ankit Gujarati    schedule 09.05.2017