Files
eUi/auth_test_example.cpp
T
RCiRoot a3001567d1 优化rpcfins模块
添加了用户模块
优化主界面布局
完善了日志界面的功能
优化检测逻辑
2025-09-16 15:22:54 +08:00

134 lines
4.3 KiB
C++

// 认证系统使用示例和测试
#include <QApplication>
#include <QWidget>
#include <QPushButton>
#include <QVBoxLayout>
#include <QMessageBox>
#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"