我正在使用客户端凭据授予令牌 (https://laravel.com/docs/5.5/passport#client-credentials-grant-tokens) 我希望从设置了Bearer Authorization标头的请求中获取客户端ID。 有没有一个简单的方法来获得这个ID?
答案 0 :(得分:1)
我最终在我自己的CheckClientCredentials类中将客户端ID设置为请求变量。 我将vendor / laravel / passport / src / Http / Middleware / CheckClientController.php复制到app / Http / Middleware / CheckClientController.php并将handle方法更新为
public function handle($request, Closure $next, ...$scopes)
{
$psr = (new DiactorosFactory)->createRequest($request);
try {
$psr = $this->server->validateAuthenticatedRequest($psr);
} catch (OAuthServerException $e) {
throw new AuthenticationException;
}
$request["oauth_client_id"] = $psr->getAttribute('oauth_client_id');
$this->validateScopes($psr, $scopes);
return $next($request);
}
然后我在app / Http / Kernel.php中更新了对CheckClientCredentials的引用 然后我可以使用$ request [“oauth_client_id”]在我的控制器中获取客户端ID。