geopro/src/net/AuthLoads.hpp

48 lines
1.3 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#pragma once
#include <QObject>
#include <QPointer>
#include <QString>
#include "AuthService.hpp" // geopro::net::AuthService::Captcha
namespace geopro::net {
class IApiCall;
class ApiChain;
// 验证码加载句柄net 层,自管理):接管一个 getImageCode 的 IApiCall
// 完成后解析 {data.id, data.code} -> done(Captcha);失败 -> failed(msg)。
// 安全不变量见 spec §5.0aborted_ 入口守卫 + 一律 deleteLater禁同步 delete
class CaptchaLoad : public QObject {
Q_OBJECT
public:
explicit CaptchaLoad(IApiCall* call, QObject* parent = nullptr);
void abort();
signals:
void done(const geopro::net::AuthService::Captcha& captcha);
void failed(const QString& message);
private:
QPointer<IApiCall> call_;
bool aborted_ = false;
};
// 登录加载句柄net 层,自管理):接管一个 verifyCodeCheck->RSA->login2 的 ApiChain
// succeeded 取末步 data.accessToken -> done(token);缺 token 或 failed -> failed(msg)。
class LoginLoad : public QObject {
Q_OBJECT
public:
explicit LoginLoad(ApiChain* chain, QObject* parent = nullptr);
void abort();
signals:
void done(const QString& token);
void failed(const QString& message);
private:
QPointer<ApiChain> chain_;
bool aborted_ = false;
};
} // namespace geopro::net