|
<?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); |
|
} |
|
} |
|
|