Пример #1
0
 public function testIDTonenCreation()
 {
     $header = array("alg" => "none");
     $payload = array("iss" => "iss_url", "user_id" => "user_id", "aud" => "client_id", "exp" => gmmktime(0, 0, 0, 8, 1, 2012), "iat" => gmmktime(0, 0, 0, 7, 31, 2012));
     $dummy_key = "dummy key";
     // construct, setHeader, setPayload
     $idToken = new Akita_OpenIDConnect_Model_IDToken($header, $payload, $dummy_key);
     // getTokenString - Success
     $token_string = $idToken->getTokenString();
     $this->assertEquals('eyJhbGciOiJub25lIiwidHlwIjoiSldTIn0.eyJpc3MiOiJpc3NfdXJsIiwidXNlcl9pZCI6InVzZXJfaWQiLCJhdWQiOiJjbGllbnRfaWQiLCJleHAiOjEzNDM3NzkyMDAsImlhdCI6MTM0MzY5MjgwMH0.', $token_string);
     // setPayloadItem
     $idToken->setPayloadItem('ops', 'ops_string');
     $token_string = $idToken->getTokenString();
     $this->assertEquals('eyJhbGciOiJub25lIiwidHlwIjoiSldTIn0.eyJpc3MiOiJpc3NfdXJsIiwidXNlcl9pZCI6InVzZXJfaWQiLCJhdWQiOiJjbGllbnRfaWQiLCJleHAiOjEzNDM3NzkyMDAsImlhdCI6MTM0MzY5MjgwMCwib3BzIjoib3BzX3N0cmluZyJ9.', $token_string);
     // setHeaderItem
     $idToken->setHeaderItem('alg', 'HS256');
     $shared_key = 'This is shared key';
     $idToken->setKey($shared_key);
     $token_string = $idToken->getTokenString();
     $this->assertEquals('eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXUyJ9.eyJpc3MiOiJpc3NfdXJsIiwidXNlcl9pZCI6InVzZXJfaWQiLCJhdWQiOiJjbGllbnRfaWQiLCJleHAiOjEzNDM3NzkyMDAsImlhdCI6MTM0MzY5MjgwMCwib3BzIjoib3BzX3N0cmluZyJ9.kxS6-O34X5XbvwacHcctQe5cJkasqJ5G0zU4MDqHIM0', $token_string);
     // setAccessTokenHash
     $idToken->setAccessTokenHash('access_token_string');
     $excepted_payload = array('iss' => 'iss_url', 'user_id' => 'user_id', 'aud' => 'client_id', 'exp' => gmmktime(0, 0, 0, 8, 1, 2012), 'iat' => gmmktime(0, 0, 0, 7, 31, 2012), 'ops' => 'ops_string', 'at_hash' => 'JnPXVfC--Wj6h3moc1dyiQ');
     $payload = $idToken->getPayload();
     $this->assertEquals($excepted_payload, $payload);
     // setCodeHash
     $idToken->setCodeHash('authorization_code_string');
     $excepted_payload = array('iss' => 'iss_url', 'user_id' => 'user_id', 'aud' => 'client_id', 'exp' => gmmktime(0, 0, 0, 8, 1, 2012), 'iat' => gmmktime(0, 0, 0, 7, 31, 2012), 'ops' => 'ops_string', 'at_hash' => 'JnPXVfC--Wj6h3moc1dyiQ', 'c_hash' => 'f0zfwRaKGf53ea5EmauamA');
     $payload = $idToken->getPayload();
     $this->assertEquals($excepted_payload, $payload);
     // TODO: getTokenString fail
     $idToken->setHeaderItem('alg', 'invalid');
     try {
         $idToken->setKey($dummy_key);
         $token_string = $idToken->getTokenString();
     } catch (Exception $e) {
         $this->assertEquals('InvalidFormat', $e->getMessage());
     }
 }