Advertisement
chrisenoch

Authentication.php

Mar 29th, 2019
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.56 KB | None | 0 0
  1. <?php
  2. namespace Ninja;
  3. class Authentication {
  4. private $users;
  5. private $usernameColumn;
  6. private $passwordColumn;
  7.  
  8. public function __construct(DatabaseTable $users,
  9. $usernameColumn, $passwordColumn){
  10. session_start();
  11. $this->users = $users;
  12. $this->usernameColumn = $usernameColumn;
  13. $this->passwordColumn = $passwordColumn;
  14. }
  15.  
  16.  
  17. public function login($username, $password) {
  18. $user = $this->users->find($this->usernameColumn, strtolower($username));
  19. if (!empty($user) && password_verify($password,
  20. $user[0]->{$this->passwordColumn})) {
  21. session_regenerate_id();
  22. $_SESSION['username'] = $username;
  23. $_SESSION['password'] =
  24. $user[0]->{$this->passwordColumn};
  25. return true;
  26. }
  27. else {
  28. return false;
  29. }
  30. }
  31.  
  32.  
  33.  
  34. public function isLoggedIn(){
  35. if (empty($_SESSION['username'])) {
  36. return false;
  37. }
  38. $user = $this->users->find($this->usernameColumn,
  39. strtolower($_SESSION['username']));
  40. if (!empty($user) &&
  41. $user[0]->{$this->passwordColumn}
  42. === $_SESSION['password']) {
  43. return true;
  44. } else {
  45. return false;
  46. }
  47. }
  48.  
  49. public function getUser() {
  50. if ($this->isLoggedIn()) {
  51. return $this->users->find($this->usernameColumn,
  52. strtolower($_SESSION['username']))[0];
  53. }
  54. else {
  55. return false;
  56. }
  57. }
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement