@ rkj Хорошо объяснил, спасибо. Какой метод аутентификации вы бы предложили [в паспорте], если необходимо предоставить мой API бизнес-партнерам, которые в конечном итоге получат доступ к моим API-интерфейсам со своих веб-серверов?
сто прочиталhttps://laravel.com/docs/5.6/passport документация и у меня есть некоторые сомнения, что, надеюсь, кто-то может мне помочь с:
Во-первых, в некотором контексте я хочу использовать Passport как способ обеспечения аутентификации Oauth для моего мобильного приложения (стороннего приложения).
Когда я используюphp artisan passport:client --password
Я возвращаю идентификатор клиента и секрет клиента. Это значение должно быть исправлено в моем приложении? например, хранить их в жестком коде или в виде файла «настроек»? Если значения не должны быть сохранены, то как это должно работать?
Для регистрации пользователя в моем приложении я использую:$user->createToken('The-App')->accessToken;
Я получаю, что accessToken будет использоваться для отправки всех моих запросов в качестве заголовка (Authorization => Bearer $ accessToken), но для чего конкретно значение «The-App»?
Для входа в систему пользователь использует URL:http://example.com/oauth/token и отправка в качестве параметров:
{"username": "[email protected]", "password": "userpassword", "grant_type": "password", "client_id": 1, // Идентификатор клиента, который я получил из команды (вопрос 1) "client_secret": "Shhh" // Секрет клиента, который я получил от команды (вопрос 1)}
Когда я вхожу в систему, используя предыдущую конечную точку, я получаю refresh_token, я читаю, что могу обновить токен черезhttp://example.com/oauth/token/refresh но я пытаюсь запросить обновление, я получил ошибку 419, я удалил URL oauth / token / refresh из проверки csrf, и теперь я возвращаюсь"message": "Unauthenticated."
Я делаю следующий запрос:
Content-Type: x-www-form-urlencoded grant_type: refresh_token refresh_token: the-refresh-token // Токен обновления, полученный из команды (вопрос 3) client_id: 1 // Идентификатор клиента, полученный из команды (вопрос 1) client_secret: Shhh // Секрет клиента, полученный от команды (вопрос 1):
Должен ли я использовать эту конечную точку? или нет необходимости, учитывая приложение, которое я пытаюсь разработать.
Наконец, есть много конечных точек, которые я получаю из паспорта, которые, я думаю, я не буду использовать, например:oauth/clients*
, oauth/personal-access-tokens*
Есть ли способ удалить их из конечных точек, опубликованных по паспорту?Спасибо большое за вашу помощь!