【发布时间】:2020-11-04 03:16:03
【问题描述】:
我已将 OAuth2 Passport 安装到我的 Laravel 项目中。
我正在使用邮递员进行测试,我可以创建新用户,我可以登录(生成令牌)和注销。
登录后,我尝试向 API 端点发出请求,但无论我在邮递员 "message": "Unauthenticated." 中收到 401 Unauthorized response ,我都会卡住。
当我向端点发出 GET 请求时,我包含以下标头:
内容类型:application/json
X-Requested-With: XMLHttpRequest
授权:Bearer TOKENHERE
这是我的路由文件 api.php
Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});
Route::get('trip/{id}', 'TripController@getUserTrips');
Route::get('trainroute/{id}', 'TripController@getTrainRouteInfo');
Route::get('routestops/{id}', 'TripController@getRouteStops');
Route::post('trip', 'TripController@addTrip');
Route::get('trip', 'TripController@errorTrip') -> name('test');
Route::group([
'prefix' => 'auth'
], function () {
Route::post('login', 'AuthController@login');
Route::post('signup', 'AuthController@signup');
Route::group([
'middleware' => 'auth:api'
], function() {
Route::get('logout', 'AuthController@logout');
Route::get('user', 'AuthController@user');
});
});
在我的 TripController 中,我希望访问的端点在哪里,我已经包含了
public function __construct()
{
$this->middleware('auth');
}
我已经搜索了答案并尝试了几件事,例如编辑 .htaccess 文件并确保在 GET 请求中包含 Authorization 标头。
【问题讨论】:
-
如果它在邮递员中工作,则可能是请求问题。你是如何提出请求的?
-
@Daniel_Knights 我不在邮递员工作,我正在使用邮递员测试 Passport。我编辑了原始帖子以使其更清晰。我安装了 Passport 并进行了配置,然后用 Postman 进行了测试。现在不工作
-
那么你是在邮递员中打开一个新标签并使用响应中的令牌发出不同的请求吗?
-
@Daniel_Knights 是的,我从 POST 登录获得 access_token,然后我复制令牌并发出新请求,并在授权选项卡中指定我包含不记名令牌,然后将令牌粘贴到那里。然后发送请求。
-
@Daniel_Knights 我搞定了,就像在这个问题上花费数小时一样荒谬......我所要做的就是将中间件命名为 'auth:api' 而不是简单地 'auth' 为我正在使用 api 路由
标签: laravel oauth-2.0 laravel-passport