コード例 #1
0
 private function extractTokenDataFromResponse(Response $response)
 {
     $this->assertEquals($response->getStatusCode(), 302);
     $location = $response->getHttpHeader('Location');
     $this->assertNotContains('error', $location);
     $parts = parse_url($location);
     $this->assertArrayHasKey('fragment', $parts);
     $this->assertFalse(isset($parts['query']));
     parse_str($parts['fragment'], $params);
     $this->assertNotNull($params);
     $this->assertArrayHasKey('id_token', $params);
     $this->assertArrayNotHasKey('access_token', $params);
     list($headb64, $payloadb64, $signature) = explode('.', $params['id_token']);
     $jwt = new Jwt();
     $header = json_decode($jwt->urlSafeB64Decode($headb64), true);
     $payload = json_decode($jwt->urlSafeB64Decode($payloadb64), true);
     return array($header, $payload, $signature);
 }