Revert removal of legacy_password column

https://github.com/friendica/friendica/pull/4782#issuecomment-380978218
This commit is contained in:
Alexandre Alapetite 2018-04-15 11:12:32 +02:00
parent 991a3d959e
commit 360e2e6342
1 changed files with 10 additions and 0 deletions

View File

@ -128,12 +128,22 @@ class User
$user = self::getAuthenticationInfo($user_info); $user = self::getAuthenticationInfo($user_info);
if (strpos($user['password'], '$') === false) { if (strpos($user['password'], '$') === false) {
//Legacy hash that has not been replaced by a new hash yet
if (self::hashPasswordLegacy($password) === $user['password']) { if (self::hashPasswordLegacy($password) === $user['password']) {
self::updatePassword($user['uid'], $password); self::updatePassword($user['uid'], $password);
return $user['uid'];
}
} elseif (!empty($user['legacy_password'])) {
//Legacy hash that has been double-hashed and not replaced by a new hash yet
//Warning: `legacy_password` is not necessary in sync with the content of `password`
if (password_verify(self::hashPasswordLegacy($password), $user['password'])) {
self::updatePassword($user['uid'], $password);
return $user['uid']; return $user['uid'];
} }
} elseif (password_verify($password, $user['password'])) { } elseif (password_verify($password, $user['password'])) {
//New password hash
if (password_needs_rehash($user['password'], PASSWORD_DEFAULT)) { if (password_needs_rehash($user['password'], PASSWORD_DEFAULT)) {
self::updatePassword($user['uid'], $password); self::updatePassword($user['uid'], $password);
} }