| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- <?php
- namespace OAuth2\OpenID\Controller;
- use OAuth2\Scope;
- use OAuth2\TokenType\TokenTypeInterface;
- use OAuth2\Storage\AccessTokenInterface;
- use OAuth2\OpenID\Storage\UserClaimsInterface;
- use OAuth2\Controller\ResourceController;
- use OAuth2\ScopeInterface;
- use OAuth2\RequestInterface;
- use OAuth2\ResponseInterface;
- /**
- * @see OAuth2\Controller\UserInfoControllerInterface
- */
- class UserInfoController extends ResourceController implements UserInfoControllerInterface
- {
- private $token;
- protected $tokenType;
- protected $tokenStorage;
- protected $userClaimsStorage;
- protected $config;
- protected $scopeUtil;
- public function __construct(TokenTypeInterface $tokenType, AccessTokenInterface $tokenStorage, UserClaimsInterface $userClaimsStorage, $config = array(), ScopeInterface $scopeUtil = null)
- {
- $this->tokenType = $tokenType;
- $this->tokenStorage = $tokenStorage;
- $this->userClaimsStorage = $userClaimsStorage;
- $this->config = array_merge(array(
- 'www_realm' => 'Service',
- ), $config);
- if (is_null($scopeUtil)) {
- $scopeUtil = new Scope();
- }
- $this->scopeUtil = $scopeUtil;
- }
- public function handleUserInfoRequest(RequestInterface $request, ResponseInterface $response)
- {
- if (!$this->verifyResourceRequest($request, $response, 'openid')) {
- return;
- }
- $token = $this->getToken();
- $claims = $this->userClaimsStorage->getUserClaims($token['user_id'], $token['scope']);
- // The sub Claim MUST always be returned in the UserInfo Response.
- // http://openid.net/specs/openid-connect-core-1_0.html#UserInfoResponse
- $claims += array(
- 'sub' => $token['user_id'],
- );
- $response->addParameters($claims);
- }
- }
|