Я определяю свои маршруты API в Laravel 5.4. Для большинства этих маршрутов требуется аутентификация, и я хотел бы иметь возможность выполнить эту аутентификацию, используя:
- аутентификация по токену, то есть
auth:api
(используется другими веб-приложениями в разных доменах) - или используя аутентификацию сеанса / cookie, т.е.
auth
, для запросов AJAX в основном веб-приложении
Возможно ли это сделать, или мне нужно определять все мои маршруты дважды, с другим префиксом группы маршрутов или чем-то еще? например. Должен ли я, чтобы все конечные точки API аутентификации сеанса выглядели как /ajax/api-endpoint
, а все конечные точки API аутентификации по токенам выглядели как /api/api-endpoint
?
Это кажется неуклюжим и произвольным - я хочу получить доступ к /api/api-endpoint
независимо от метода аутентификации, который я использую.
Указание как auth
, так и auth:api
промежуточного программного обеспечения следующим образом, по-видимому, заставляет Laravel требовать ОБОИХ методов аутентификации перед успешным выполнением, вместо того, чтобы просто требовать одного из них:
Route::get('api/user', 'MyUserController@index')->middleware(['auth', 'auth:api']);
api.php
, имеют префикс / api к их URL-адресу автоматически, поэтому мне пришлось поместить маршруты / ajax / * вweb.php
- что на самом деле является еще одной неприятной ситуацией, лол - person jeff-h   schedule 15.03.2017