Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel Passport:auth:api的行为类似于auth:web_Php_Laravel_Authentication_Access Token_Laravel Passport - Fatal编程技术网

Php Laravel Passport:auth:api的行为类似于auth:web

Php Laravel Passport:auth:api的行为类似于auth:web,php,laravel,authentication,access-token,laravel-passport,Php,Laravel,Authentication,Access Token,Laravel Passport,我试图在我的应用程序中实现passport,以验证api调用。我已经完成了官方文档中提到的配置。 我的授权保护中有: 'api' => [ 'driver' => 'passport', 'provider' => 'users', ], 在我的AuthServiceProvider的boot()方法中: Passport::routes(); 这是我试图访问的路线: Route::middleware

我试图在我的应用程序中实现
passport
,以验证
api
调用。我已经完成了官方文档中提到的配置。 我的授权保护中有:

'api' => [
            'driver' => 'passport',
            'provider' => 'users',
        ],
在我的
AuthServiceProvider的
boot()
方法中:

Passport::routes();
这是我试图访问的
路线

    Route::middleware('auth:api')->get('/user', function (Request $request) {
    return $request->user();
});

Route::group(['namespace' => 'Api', 'middleware' => 'auth:api'], function () {
    // Login Controller
   Route::get('/getclc', 'PreController@getClc');
});
我在请求中发送
标题
,如下所示:

Authorization:Bearer $accessToken
我的问题是:1。当请求受保护的路由时,它会将我发送到登录页面,但我希望它返回401。我该怎么做


我的
laravel
版本是5.4.33。

当身份验证失败时,laravel抛出一个
AuthenticationException
异常。此异常由Laravel异常处理程序处理,并最终在
app/Exceptions/handler.php
文件中调用
unauthenticated()
方法

从该方法可以看出,如果请求需要json响应,那么将得到401个未经验证的响应。但是,如果您不期望json响应,它只会重定向到名为“login”的路由。如果您没有名为“login”的路由,这显然会失败

当您发送“X-request-With:XMLHttpRequest”头或“Accept:application/json”头时,您的请求为“expectsJson”。否则,它将被视为正常的web请求


如果要更改应用程序处理未经身份验证的用户的方式,可以更改
unauthenticated()
方法。

在postman的标题上添加此代码

key           Value
Accept        application/json

谢谢

你能告诉我们所有路线吗?@AntonisTsimourtos我已经用所有路线更新了我的问题。请看一看。这个错误显然意味着“登录”路径没有定义。您可以尝试运行
php artisan make:auth
。然后你可以尝试使用
php-artisan-clear:cache
我按照你说的做了,现在它将它发送到登录页面而不是返回错误。所以“问题解决了”。现在你可能不得不考虑你想做什么?若用户未通过身份验证,是否要返回401或将其重定向到登录页面?你也可以更新你的问题。