| <?php |
|
|
| namespace Kanboard\Auth; |
|
|
| use Kanboard\Core\Base; |
| use Kanboard\Core\Security\PreAuthenticationProviderInterface; |
| use Kanboard\User\DatabaseUserProvider; |
|
|
| |
| |
| |
| |
| |
| |
| class RememberMeAuth extends Base implements PreAuthenticationProviderInterface |
| { |
| |
| |
| |
| |
| |
| |
| protected $userInfo = array(); |
|
|
| |
| |
| |
| |
| |
| |
| public function getName() |
| { |
| return 'RememberMe'; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| public function authenticate() |
| { |
| $credentials = $this->rememberMeCookie->read(); |
|
|
| if ($credentials !== false) { |
| $session = $this->rememberMeSessionModel->find($credentials['token'], $credentials['sequence']); |
|
|
| if (! empty($session)) { |
| $this->rememberMeCookie->write( |
| $session['token'], |
| $this->rememberMeSessionModel->updateSequence($session['token']), |
| $session['expiration'] |
| ); |
|
|
| $this->userInfo = $this->userModel->getById($session['user_id']); |
|
|
| return true; |
| } |
| } |
|
|
| return false; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| public function getUser() |
| { |
| if (empty($this->userInfo)) { |
| return null; |
| } |
|
|
| return new DatabaseUserProvider($this->userInfo); |
| } |
| } |
|
|