1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| <?php class Persona { private static $result = array();
public static function verify($assertion) { static::$result = static::check($assertion);
return static::$result->status == 'okay'; }
public static function result() { return static::$result; }
public static function reason() { return static::$result->reason; }
private static function check($assertion) { $post_field = http_build_query(array( 'assertion' => $assertion, 'audience' => $_SERVER['HTTP_HOST'], ));
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://verifier.login.persona.org/verify"); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $post_field); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, false);
$result = curl_exec($curl); curl_close($curl);
return json_decode($result); } } ?>
|