Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public function login($email, $password)
- {
- $sql = 'SELECT * FROM user WHERE email = :email';
- $db = new Db();
- $result = $db->query($sql, self::class, [':email' => $email])[0];
- if (password_verify($password, $result->getPassword())) {
- //Как здесь записать в текущий объект все свойства объекта $result?
- return $this;
- } else {
- $error = 'Неправильная пара логинпароль';
- return $error;
- }
- }
- public static function login($email, $password): User
- {
- $sql = 'SELECT * FROM user WHERE email = :email';
- $db = new Db(); // todo: extract concrete class usage
- $users = $db->query($sql, self::class, [':email' => $email]);
- if (!empty($users) && password_verify($password, $users[0]->getPassword())) {
- return $users[0];
- }
- throw new AuthException('Неправильная пара логинпароль');
- }
- class User implements JsonSerializable {
- private $username;
- private $password;
- private $name;
- private static function findByUsername($username) {
- $res = new self();
- $res->username = $username;
- $res->name = 'Some User';
- $res->password = password_hash("aXSA9_5uZp0QLhGY", PASSWORD_DEFAULT);
- return $res;
- }
- public function login($username, $password) {
- $user = self::findByUsername($username);
- if (password_verify($password, $user->password)) {
- $fields = get_class_vars(static::class);
- foreach ($fields as $field => $_) {
- $this->$field = $user->$field;
- }
- }
- }
- public function jsonSerialize() {
- return [
- 'username' => $this->username,
- 'name' => $this->name
- ];
- }
- }
- $user = new User();
- $user->login('admin', 'aXSA9_5uZp0QLhGY');
- echo json_encode($user); // {"username":"admin","name":"Some User"}
Add Comment
Please, Sign In to add comment