|
@@ -40,19 +40,16 @@ class LoginController extends Controller
|
|
|
|
|
|
if (!$result || !password_verify(param($request, 'password'), $result->password)) {
|
|
|
$this->session->alert(lang('bad_login'), 'danger');
|
|
|
-
|
|
|
return redirect($response, route('login'));
|
|
|
}
|
|
|
|
|
|
if (isset($this->config['maintenance']) && $this->config['maintenance'] && !$result->is_admin) {
|
|
|
$this->session->alert(lang('maintenance_in_progress'), 'info');
|
|
|
-
|
|
|
return redirect($response, route('login'));
|
|
|
}
|
|
|
|
|
|
if (!$result->active) {
|
|
|
$this->session->alert(lang('account_disabled'), 'danger');
|
|
|
-
|
|
|
return redirect($response, route('login'));
|
|
|
}
|
|
|
|
|
@@ -66,27 +63,7 @@ class LoginController extends Controller
|
|
|
$this->logger->info("User $result->username logged in.");
|
|
|
|
|
|
if (param($request, 'remember') === 'on') {
|
|
|
- $selector = bin2hex(random_bytes(8));
|
|
|
- $token = bin2hex(random_bytes(32));
|
|
|
- $expire = time() + 604800; // a week
|
|
|
-
|
|
|
- $this->database->query('UPDATE `users` SET `remember_selector`=?, `remember_token`=?, `remember_expire`=? WHERE `id`=?', [
|
|
|
- $selector,
|
|
|
- password_hash($token, PASSWORD_DEFAULT),
|
|
|
- date('Y-m-d\TH:i:s', $expire),
|
|
|
- $result->id,
|
|
|
- ]);
|
|
|
-
|
|
|
- // Workaround for php <= 7.3
|
|
|
- if (PHP_VERSION_ID < 70300) {
|
|
|
- setcookie('remember', "{$selector}:{$token}", $expire, '; SameSite=Lax', '', false, true);
|
|
|
- } else {
|
|
|
- setcookie('remember', "{$selector}:{$token}", [
|
|
|
- 'expires' => $expire,
|
|
|
- 'httponly' => true,
|
|
|
- 'samesite' => 'Lax',
|
|
|
- ]);
|
|
|
- }
|
|
|
+ $this->refreshRememberCookie($result->id);
|
|
|
}
|
|
|
|
|
|
if ($this->session->has('redirectTo')) {
|