public static function persona() { $c = curl_init(); $audience = 'https://' . \Config::$domain . ':443'; curl_setopt_array($c, array(CURLOPT_SSL_VERIFYPEER => TRUE, CURLOPT_URL => 'https://verifier.login.persona.org/verify', CURLOPT_RETURNTRANSFER => TRUE, CURLOPT_POST => 2, CURLOPT_POSTFIELDS => 'assertion=' . urlencode($_POST['assertion']) . '&audience=' . urlencode($audience))); $result = curl_exec($c); if ($result === FALSE) { http_response_code(500) && exit('Could not connect to Person :/'); } curl_close($c); $object = json_decode($result); if ($object->audience !== $audience) { http_response_code(500) && exit('Wrong audience?!'); } if ($object->status !== 'okay') { http_response_code(500) && exit('Persona status is not okay :/'); } $_SESSION['persona'] = $object->email; $_SESSION['range'] = \Config::$defaultRange; $sGetUser = \Core\DB::$db->prepare('SELECT * FROM user WHERE email = :email'); $sGetUser->execute([':email' => $object->email]); $rGetUser = $sGetUser->fetchAll(\PDO::FETCH_OBJ); $sGetUser->closeCursor(); if (count($rGetUser) === 1) { $user = current($rGetUser); $_SESSION['user_id'] = $user->user_id; } else { $user = new \stdClass(); $user->email = $object->email; $_SESSION['user_id'] = \Models\User::set(NULL, $user); } }
public function seedUser() { $user = new UserModel(); $user->set('username', $this->faker->userName($this->gender)); //$user->set('email', $this->faker->freeEmail); $user->set('password', UserModel::hashPassword("Scr0tums")); $user->set('gender', $this->gender); $user->set('created_ts', date("Y-m-d H:i:s")); $user->set('fake', 1); $user->set('secret_key', Keys::createSecret($user)); $user->set('public_key', Keys::createPublic($user)); $user->save(); return $user; }