我对 auth:api 中间件有疑问! 当我为未经身份验证的用户定义如下路由时,我们有一个经过身份验证的用户和未经身份验证的用户都可以访问的请求:
Route::post('{user}/leads', 'UsersController@getContact');
当访客用户请求此路由时,一切正常。
是,我可以使用 $request->user();
但是如果传递带有不记名 header 的 token 并使用 $request->user()
获取用户,当然它不起作用!因为我们没有在此路由上使用 auth:api
,如果我们这样做,我们将无法通过访客用户访问此路由!
因此,我找不到一种为两个经过身份验证的用户定义一条路由的方法,如果用户经过身份验证,我们会得到 $request->user()
并且经过身份验证的用户也无法访问该路由!
提前致谢。
最佳答案
我找到了一种方法,我刚刚写了这个:
$middleware = ['api'];
if (\Request::header('Authorization'))
$middleware = array_merge(['auth:api']);
Route::group(['prefix' => 'v1', 'namespace' => 'Api', 'middleware' => $middleware], function () {
//routes here
});
在 api.php 路由文件中,它工作正常。 谢谢
关于laravel - 如何为经过身份验证的用户和未经身份验证的用户提供路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43422857/