当前位置: 首页 > 知识库问答 >
问题:

Laravel OAuth2 Passport API生成令牌,但无法发出请求:“未经验证”

方宁
2023-03-14

我已将OAuth2 Passport安装到我的Laravel项目中。我正在使用postman进行测试,我可以创建新用户,我可以登录(生成令牌)和注销。登录后,我尝试向APIendpoint发出请求,但在这里,我被卡住了,因为无论我在postman“message”:“Unauthenticated”中得到什么未经授权的响应

当我向endpoint发出GET请求时,我包括以下标头:

内容类型:application/json

X-请求-与:XMLHttpRequest

授权:此处为不记名代币

这是我的路由文件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中,我希望访问的endpoint在哪里,我已经包括

public function __construct()
    {
            $this->middleware('auth');
    }

我已经搜索了答案,并尝试了几件事情,例如编辑. htaccess文件,并确保在GET请求中包含授权头。


共有1个答案

墨阳羽
2023-03-14

经过长时间,长时间潜入这个问题的答案是相当简单,在我的TripController我有这个

public function __construct()
    {
            $this->middleware('auth');
    }

但我使用的是api路由,然后我看到登录etc中间件被命名为“auth:api”,所以我尝试了相同的方法并。。。成功了!

所以这是正确的

public function __construct()
    {
            $this->middleware('auth:api');
    }
 类似资料:
  • 我试图使用flask_oauthlib访问我的twitter api,但我得到的只是错误:未能生成请求令牌。这是密码。 这在使用http://term.ie/oauth/example/client.php时不起作用,我设法获得了一个请求令牌。 我用https://github.com/lepture/example-oauth1-server/blob/master/client.py和http

  • https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=your_app_client_id&response_type=code&redirect_uri=https%3a%2f%2flogin.microsoftonline.com%2fcommon%2foauth2%2fnativeclient&res

  • 我在中间件中添加了以下代码,用于JWT Auth的用户身份验证,这对于中间件处理的所有路由都很有效。 但是对于一个使用Post方法的路由,令牌被正确传递,但我仍然得到: JWTException-无法从请求中分析令牌 在我尝试的同一路线上: 输出: 我能够看到我用来访问其他路由的有效令牌,并且该令牌在所有其他路由上都能正常工作。 提前感谢!!!

  • 问题内容: 我正在从客户端向Google oauth 2 API 进行ajax调用以获取访问令牌,但出现以下错误: 对预检请求的响应未通过访问控制检查:在所请求的资源上不存在“ Access-Control-Allow-Origin”标头。因此,不允许访问来源“ http://blah-blah.com ” 我希望该调用为ajax,以便通过或换句话说,在进行调用时不会打扰用户,我如何获得访问令牌以

  • 我已经按照这里的建议试过了 但这并没有改变什么。