prepare('SELECT id FROM auth_users WHERE email = ? LIMIT 1'); $stmt->execute([$email]); $userId = $stmt->fetchColumn(); if (!$userId) { json_error(422, 'Invalid code', null, 'code_invalid'); } // Receiving the code proves the address, so the e-mail counts as verified too. $pdo->prepare( 'UPDATE auth_users SET password = ?, email_verified_at = COALESCE(email_verified_at, NOW()) WHERE id = ?' )->execute([password_hash($password, PASSWORD_DEFAULT), $userId]); $pdo->prepare('DELETE FROM api_tokens WHERE user_id = ?')->execute([$userId]); json_ok();