如何为经过身份验证的用户和未经身份验证的用户设置路由

Roh*_*aei 2 middleware routes oauth laravel laravel-passport

我有 auth:api 中间件的问题!当我为非身份验证用户定义这样的路由时,我们有一个请求可供身份验证用户和非身份验证用户访问:

Route::post('{user}/leads', 'UsersController@getContact');
Run Code Online (Sandbox Code Playgroud)

当来宾用户请求此路线时,一切正常。是,我可以访问用户$request->user();

但是如果使用承载头传递令牌并获取用户$request->user()当然它不起作用!因为我们没有auth:api在这条路线上使用,如果我们这样做了,我们将无法与来宾用户一起访问这条路线!所以我找不到一种方法,我们为两个经过身份验证的用户定义一条路由,如果用户经过身份验证,我们就会得到$request->user()并且没有经过身份验证的用户也可以访问该路由!

提前致谢。

Roh*_*aei 5

我找到了一种方法,我刚刚写了这个:

$middleware = ['api'];
if (\Request::header('Authorization')) 
   $middleware = array_merge(['auth:api']);
Route::group(['prefix' => 'v1', 'namespace' => 'Api', 'middleware' => $middleware], function () {
    //routes here
});
Run Code Online (Sandbox Code Playgroud)

在 api.php 路由文件中,它工作正常。谢谢