$clientInfo->fromArray($config['client_info']); $stateManager = new Manager(); $dispatcher = new Authorization\Dispatcher(); $dispatcher->setStateManager($stateManager); if (!isset($_GET['redirect'])) { $request = new Authorization\Request($clientInfo, 'code', 'openid profile email'); $uri = $dispatcher->createAuthorizationRequestUri($request); _dump($uri); printf("<pre>%s</pre><br>", $uri); printf("<a href=\"%s\">Login</a>", $uri); } else { try { $response = $dispatcher->getAuthorizationResponse(); printf("OK<br>Code: %s<br>State: %s<br>", $response->getCode(), $response->getState()); $tokenRequest = new Token\Request(); $tokenRequest->fromArray(array('client_info' => $clientInfo, 'code' => $response->getCode(), 'grant_type' => 'authorization_code')); $httpClient = _createHttpClient(); $tokenDispatcher = new Token\Dispatcher($httpClient); try { $tokenResponse = $tokenDispatcher->sendTokenRequest($tokenRequest); _dump($tokenResponse); printf("Access token: %s<br>", $tokenResponse->getAccessToken()); $userInfoRequest = new UserInfo\Request(); $userInfoRequest->setAccessToken($tokenResponse->getAccessToken()); $userInfoRequest->setClientInfo($clientInfo); $userInfoDispatcher = new UserInfo\Dispatcher($httpClient); try { $userInfoResponse = $userInfoDispatcher->sendUserInfoRequest($userInfoRequest); _dump($userInfoResponse->getClaims()); printf("User info: %s", \Zend\Json\Json::encode($userInfoResponse->getClaims(), \Zend\Json\Json::TYPE_ARRAY)); } catch (\Exception $e) {