| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- <?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
- {
- /**
- * @var UserClaimsInterface
- */
- protected $userClaimsStorage;
- /**
- * Constructor
- *
- * @param TokenTypeInterface $tokenType
- * @param AccessTokenInterface $tokenStorage
- * @param UserClaimsInterface $userClaimsStorage
- * @param array $config
- * @param ScopeInterface $scopeUtil
- */
- public function __construct(TokenTypeInterface $tokenType, AccessTokenInterface $tokenStorage, UserClaimsInterface $userClaimsStorage, $config = array(), ScopeInterface $scopeUtil = null)
- {
- parent::__construct($tokenType, $tokenStorage, $config, $scopeUtil);
- $this->userClaimsStorage = $userClaimsStorage;
- }
- /**
- * Handle the user info request
- *
- * @param RequestInterface $request
- * @param ResponseInterface $response
- * @return void
- */
- 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);
- }
- }
|