我在 Laravel 5.4 中定义我的 API 路由。这些路由中的大多数都需要身份验证,我希望能够使用以下任一方式进行此身份验证:
- 令牌身份验证即
auth:api
(由不同域上的其他 Web 应用程序使用) - 或使用 session/cookie auth 即
auth
,用于主 Web 应用程序中的 AJAX 请求
是否可以这样做,或者我是否必须使用不同的路由组前缀或其他东西定义我的所有路由两次?例如,我是否必须让所有会话身份验证API 端点看起来像/ajax/api-endpoint
所有令牌身份验证API 端点看起来像/api/api-endpoint
?
/api/api-endpoint
这感觉很笨拙和随意——无论我使用什么身份验证方法,我都想访问。
如下指定两者auth
和auth:api
中间件似乎使 Laravel 在成功之前需要两种 auth 方法,而不是只需要任何一种:
Route::get('api/user', 'MyUserController@index')->middleware(['auth', 'auth:api']);