【发布时间】:2018-02-01 22:57:01
【问题描述】:
我正在尝试在我的应用程序中实现passport 来验证api 调用。我已经完成了官方文档中提到的配置。
我的身份验证守卫中有这个:
'api' => [
'driver' => 'passport',
'provider' => 'users',
],
而且,这在我的 AuthServiceProvider's boot() 方法中:
Passport::routes();
这是我正在尝试访问的route:
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');
});
我在这样的请求中发送header:
Authorization:Bearer $accessToken
我的问题是: 1. 当请求受保护的路由时,它会将我发送到登录页面,但我希望它返回 401。我该怎么做?
我的laravel 版本是 5.4.33。
【问题讨论】:
-
你能告诉我们所有的路线吗?
-
@AntonisTsimourtos 我已经用所有路线更新了我的问题。请看一看。
-
嗯,错误显然意味着“登录”路线没有定义。你可以尝试运行
php artisan make:authto scaffold the authentication pages needed。然后你可以尝试使用php artisan clear:cache -
我按照你说的做了,现在它发送到登录页面而不是返回错误。
-
所以“问题解决了”。现在你可能不得不考虑你想做什么?如果用户未通过身份验证,您是否要返回 401 或将他重定向到登录页面?您也可以更新您的问题。
标签: php laravel authentication access-token laravel-passport