mirror of
https://github.com/lkddi/nexusphp.git
synced 2026-04-15 05:00:49 +08:00
Challenge-Response Authentication
This commit is contained in:
@@ -46,9 +46,11 @@ class NexusWebGuard implements StatefulGuard
|
||||
}
|
||||
$credentials = $this->request->cookie();
|
||||
if ($this->validate($credentials)) {
|
||||
$user = $this->user;
|
||||
$user = $this->provider->retrieveByCredentials($credentials);
|
||||
if ($this->provider->validateCredentials($user, $credentials)) {
|
||||
return $user;
|
||||
if ($user->checkIsNormal()) {
|
||||
return $this->user = $user;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -62,29 +64,13 @@ class NexusWebGuard implements StatefulGuard
|
||||
*/
|
||||
public function validate(array $credentials = [])
|
||||
{
|
||||
$required = ['c_secure_pass', 'c_secure_uid', 'c_secure_login'];
|
||||
$required = ['c_secure_pass'];
|
||||
foreach ($required as $value) {
|
||||
if (empty($credentials[$value])) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
$b_id = base64($credentials["c_secure_uid"],false);
|
||||
$id = intval($b_id ?? 0);
|
||||
if (!$id || !is_valid_id($id) || strlen($credentials["c_secure_pass"]) != 32) {
|
||||
return false;
|
||||
}
|
||||
$user = $this->provider->retrieveById($id);
|
||||
if (!$user) {
|
||||
return false;
|
||||
}
|
||||
try {
|
||||
$user->checkIsNormal();
|
||||
$this->user = $user;
|
||||
return true;
|
||||
} catch (\Throwable $e) {
|
||||
do_log($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public function logout()
|
||||
|
||||
Reference in New Issue
Block a user