// 认证系统使用示例和测试 #include #include #include #include #include #include "src/launcher/GUI/front/auth.hpp" class TestWidget : public QWidget { Q_OBJECT public: TestWidget(QWidget* parent = nullptr) : QWidget(parent) { setupUI(); connectSignals(); } private slots: void testBasicAuth() { // 使用全局便捷函数进行基本认证 UserDataManager::authResult result = Auth::authenticate(this); QString message; switch(result) { case UserDataManager::OK: message = "认证成功!"; break; case UserDataManager::WrongPassword: message = "密码错误!"; break; case UserDataManager::UserNotFound: message = "用户不存在!"; break; case UserDataManager::Cancelled: message = "用户取消了认证!"; break; default: message = "未知错误!"; } QMessageBox::information(this, "认证结果", message); } void testAuthWithCallback() { // 使用带回调的认证 auto callback = []() -> bool { // 这里可以执行任何需要认证后的操作 QMessageBox::information(nullptr, "回调", "认证成功后的回调函数被执行!"); return true; // 返回true表示回调成功 }; UserDataManager::authResult result = Auth::authenticateWithCallback(callback, this); QString message; switch(result) { case UserDataManager::OK: message = "认证和回调都成功!"; break; case UserDataManager::CallBackRunFalse: message = "认证成功但回调失败!"; break; case UserDataManager::WrongPassword: message = "密码错误!"; break; case UserDataManager::UserNotFound: message = "用户不存在!"; break; case UserDataManager::Cancelled: message = "用户取消了认证!"; break; default: message = "未知错误!"; } QMessageBox::information(this, "认证结果", message); } void testUserManagement() { // 获取用户管理器实例 UserDataManager& manager = Auth::getDefaultManager(); // 添加测试用户 bool success = manager.addUser("testuser", "testpass"); if (success) { QMessageBox::information(this, "用户管理", "测试用户添加成功!\n用户名: testuser\n密码: testpass"); } else { QMessageBox::warning(this, "用户管理", "测试用户添加失败!可能用户已存在。"); } // 显示所有用户 auto users = manager.getAllUsers(); QString userList = "当前用户列表:\n"; for (const auto& user : users) { userList += QString::fromStdString(user.username) + "\n"; } QMessageBox::information(this, "用户列表", userList); } private: void setupUI() { setWindowTitle("认证系统测试"); setFixedSize(300, 200); auto* layout = new QVBoxLayout(this); auto* basicAuthBtn = new QPushButton("测试基本认证", this); auto* callbackAuthBtn = new QPushButton("测试带回调认证", this); auto* userMgmtBtn = new QPushButton("测试用户管理", this); layout->addWidget(basicAuthBtn); layout->addWidget(callbackAuthBtn); layout->addWidget(userMgmtBtn); connect(basicAuthBtn, &QPushButton::clicked, this, &TestWidget::testBasicAuth); connect(callbackAuthBtn, &QPushButton::clicked, this, &TestWidget::testAuthWithCallback); connect(userMgmtBtn, &QPushButton::clicked, this, &TestWidget::testUserManagement); } void connectSignals() { // 信号连接已在setupUI中完成 } }; int main(int argc, char *argv[]) { QApplication app(argc, argv); TestWidget widget; widget.show(); return app.exec(); } #include "auth_test_example.moc"