mirror of
https://github.com/shuaiplus/nodewarden.git
synced 2026-06-20 13:00:39 +00:00
fix: update password verification to support legacy client hashes
This commit is contained in:
@@ -155,10 +155,10 @@ export class AuthService {
|
|||||||
return SERVER_HASH_PREFIX + btoa(binary);
|
return SERVER_HASH_PREFIX + btoa(binary);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Verify password: hash the input the same way, then constant-time compare.
|
// Verify password: new rows use server-side hashing; legacy rows store the raw client hash.
|
||||||
async verifyPassword(inputHash: string, storedHash: string, email: string): Promise<boolean> {
|
async verifyPassword(inputHash: string, storedHash: string, email: string): Promise<boolean> {
|
||||||
if (!storedHash.startsWith(SERVER_HASH_PREFIX)) {
|
if (!storedHash.startsWith(SERVER_HASH_PREFIX)) {
|
||||||
return false;
|
return this.constantTimeEquals(inputHash, storedHash);
|
||||||
}
|
}
|
||||||
const serverHash = await this.hashPasswordServer(inputHash, email);
|
const serverHash = await this.hashPasswordServer(inputHash, email);
|
||||||
return this.constantTimeEquals(serverHash, storedHash);
|
return this.constantTimeEquals(serverHash, storedHash);
|
||||||
|
|||||||
Reference in New Issue
Block a user