Challenge-Response Authentication

This commit is contained in:
xiaomlove
2025-04-05 15:38:40 +07:00
parent bd9b4d7e1d
commit 97dc956c20
28 changed files with 538 additions and 329 deletions

View File

@@ -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()