尝试在没有活动访问令牌的情况下访问会话数据 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
必须在 OAuthClientOwnerMiddleware
和 OAuthUserOwnerMiddleware
之前添加
希望这些信息对您有所帮助!
更新
试试下面的中间件代码
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));
});
});
这里 authroute
和 postwithauth
需要用你的更新。
我有下面的代码可以使用 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
必须在 OAuthClientOwnerMiddleware
和 OAuthUserOwnerMiddleware
希望这些信息对您有所帮助!
更新
试试下面的中间件代码
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));
});
});
这里 authroute
和 postwithauth
需要用你的更新。