我有以下代码使用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
函数时,我试图在没有活动访问令牌错误的情况下访问会话数据。我已经尝试将代码移动到控制器但遇到了同样的错误。
答案 0 :(得分:1)
我不知道这个捆绑(它的功能/工作方式),但我认为你错过了一些东西。从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
需要更新您的身份。