generatePassword(); $hash = md5("$user:$password"); $tr = Arsse::$db->begin(); Arsse::$db->tokenRevoke($user, "fever.login"); Arsse::$db->tokenCreate($user, "fever.login", $hash); $tr->commit(); return $password; } public static function unregister(string $user): bool { return (bool) Arsse::$db->tokenRevoke($user, "fever.login"); } public static function authenticate(string $user, string $password): bool { try { return (bool) Arsse::$db->tokenLookup("fever.login", md5("$user:$password")); } catch (ExceptionInput $e) { return false; } } }