Guest User

Untitled

a guest
Jun 28th, 2018
930
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.91 KB | None | 0 0
  1. public function login($email, $password)
  2. {
  3. $sql = 'SELECT * FROM user WHERE email = :email';
  4. $db = new Db();
  5. $result = $db->query($sql, self::class, [':email' => $email])[0];
  6.  
  7. if (password_verify($password, $result->getPassword())) {
  8. //Как здесь записать в текущий объект все свойства объекта $result?
  9. return $this;
  10. } else {
  11. $error = 'Неправильная пара логинпароль';
  12. return $error;
  13. }
  14. }
  15.  
  16. public static function login($email, $password): User
  17. {
  18. $sql = 'SELECT * FROM user WHERE email = :email';
  19. $db = new Db(); // todo: extract concrete class usage
  20. $users = $db->query($sql, self::class, [':email' => $email]);
  21.  
  22. if (!empty($users) && password_verify($password, $users[0]->getPassword())) {
  23. return $users[0];
  24. }
  25. throw new AuthException('Неправильная пара логинпароль');
  26. }
  27.  
  28. class User implements JsonSerializable {
  29. private $username;
  30. private $password;
  31. private $name;
  32.  
  33. private static function findByUsername($username) {
  34. $res = new self();
  35. $res->username = $username;
  36. $res->name = 'Some User';
  37. $res->password = password_hash("aXSA9_5uZp0QLhGY", PASSWORD_DEFAULT);
  38. return $res;
  39. }
  40.  
  41. public function login($username, $password) {
  42. $user = self::findByUsername($username);
  43. if (password_verify($password, $user->password)) {
  44. $fields = get_class_vars(static::class);
  45. foreach ($fields as $field => $_) {
  46. $this->$field = $user->$field;
  47. }
  48. }
  49. }
  50.  
  51. public function jsonSerialize() {
  52. return [
  53. 'username' => $this->username,
  54. 'name' => $this->name
  55. ];
  56. }
  57. }
  58.  
  59. $user = new User();
  60. $user->login('admin', 'aXSA9_5uZp0QLhGY');
  61. echo json_encode($user); // {"username":"admin","name":"Some User"}
Add Comment
Please, Sign In to add comment