Что Laravel паспорт - CreateFreshApiToken нет фреймворк Laravel знак печенья
CreateFreshApiToken, после добавления в группу промежуточного программного обеспечения " web " в ядре.php, как предполагается, прикрепляет файл cookie laravel_token к ответу на каждый запрос, поступающий через web middleware, не так ли? Например, что-либо в этой группе должно получить куки:
Route::group(['middleware' => ['web']], function () {
Route::get('/{vue?}', function () { return view('index'); } )->where('vue', '[/w.-]*');
});
Я пытаюсь заменить текущий рабочий процесс, который использует client_secret, видя, что oauth2 и website находятся в одном домене, идея самоупотребляющего api с помощью CreateFreshApiToken была приятной, хотя в этом дело в том, что я не уверен, правильно ли я это делаю.
1 ответ:
Цитирую мой комментарий по запросу
" вы не получите токен в этом методе. Созданный файл cookie будет содержать зашифрованный токен и будет использоваться Службой passport token guard для проверки подлинности запросов, поступающих с файлом cookie. Таким образом, маршруты, защищенные промежуточным программным обеспечением
auth:api, будут аутентифицироваться без ручного присоединения маркера доступа. Таким образом, после первоначального входа в систему (что должно быть традиционным способом) вам нужно перезагрузить страницу по крайней мере один раз, чтобы файл cookie был создан по промежуточному программному обеспечениюCreateFreshApiToken."Кроме того, вы можете использовать пароль grant для вашего СПА. Это то, что вы увидите в 90% учебников в сети. Но они хранят идентификатор клиента и секрет в файле JavaScript,что очень плохо с точки зрения безопасности. Чтобы преодолеть это, вы можете создать прокси-маршрут / промежуточное программное обеспечение, которое вводит идентификатор клиента и секрет. Таким образом, вам просто нужно будет передать электронную почту и пароль, чтобы получить маркер доступа и обновить маркер.
Но опять же вам нужно сохранить маркер доступа и маркер обновления в локальном хранилище браузера, что обычно делают разработчики. Но маркер становится уязвимым для атак XSS. Таким образом, есть много углов, о которых нужно думать с точки зрения безопасности при работе с аутентификацией SPA.
Чтобы преодолеть все вышеперечисленные проблемы, вам нужно надежно хранить маркер в файле cookie HttpOnly, а затем использовать промежуточное программное обеспечение для разрешения маркера из файла cookie и аутентификации пользователя по любому запросу API. Это наиболее практичный и безопасный способ аутентификации с помощью SPA. Laravel Passport делает именно это, но нуждается в некоторой начальной работе с пользовательскими маршрутами входа, чтобы это произошло. Отсутствие надлежащей документации и ясности в его использовании и работе-это проблема с паспортом.
Вот некоторые хорошие ресурсы по эти https://web.archive.org/web/20141208132104/http://alexbilbie.com/2014/11/oauth-and-javascript/
Http://esbenp.github.io/2017/03/19/modern-rest-api-laravel-part-4/
Comments