尝试在没有活动访问令牌的情况下访问会话数据 laravel

Tried to access session data without an active access token laravel

我有下面的代码可以使用 LucaDegasperi\OAuth2Server\Authorizer 生成访问令牌,我需要获取审核日志的 authId。

Route::post('oauth/access_token', ['middleware' => $pre_token_middleware, 
function () {

    $access_token = Authorizer::issueAccessToken();

    // Create log for logged in user
    $auth_id = Authorizer::getResourceOwnerId();
    // another code here..

    return \Response::json($access_token);
}]);

但是当执行 getResourceOwnerId 函数时,我得到了 Tried to access session data without an active access token 错误。我已经尝试将代码移至控制器,但出现了同样的错误。

我不知道这个捆绑包(它如何 functional/work),但我认为您错过了一些东西。查看 lucadegasperi-oauth2-server-laravel 中的以下详细信息。

如果中间件的顺序不正确,Authorizer::getResourceOwnerId() 等方法将无法工作。

请注意,中间件必须按特定顺序应用。 OAuthMiddleware 必须在 OAuthClientOwnerMiddlewareOAuthUserOwnerMiddleware

之前添加

希望这些信息对您有所帮助!

更新
试试下面的中间件代码

Route::post('oauth/access_token', function() {
    return Response::json(Authorizer::issueAccessToken());
});

Route::group(['middleware' => 'oauth'], function () {

    Route::get('authroute', function() {
        //OAuth will be required to access this route
    });

    Route::post('postwithauth', function(Request $request) {
        $userID = Authorizer::getResourceOwnerId();
        $input = $request->input();
        return response()->json(array('userID' => $userID, 'input' => $input));
    });

});

这里 authroutepostwithauth 需要用你的更新。