//! 认证应用返回类型。 //! //! 这里只返回纯应用结果与领域事件;短信 provider、JWT 签发和持久化由外层 adapter 完成。 use serde::{Deserialize, Serialize}; use crate::domain::{ AuthStoreSnapshotRecord, AuthUser, RefreshSessionRecord, WechatAuthStateRecord, }; #[derive(Clone, Debug, PartialEq, Eq)] pub struct AuthMeResult { pub user: AuthUser, } #[derive(Clone, Debug, PartialEq, Eq)] pub struct PublicUserSearchResult { pub user: AuthUser, } #[derive(Clone, Debug, PartialEq, Eq)] pub struct PasswordEntryResult { pub user: AuthUser, pub created: bool, } #[derive(Clone, Debug, PartialEq, Eq)] pub struct ChangePasswordResult { pub user: AuthUser, } #[derive(Clone, Debug, PartialEq, Eq)] pub struct UpdateProfileResult { pub user: AuthUser, } #[derive(Clone, Debug, PartialEq, Eq)] pub struct ResetPasswordResult { pub user: AuthUser, pub provider: String, pub provider_out_id: Option, pub phone_number_masked: String, } #[derive(Clone, Debug, PartialEq, Eq)] pub struct SendPhoneCodeResult { pub cooldown_seconds: u64, pub expires_in_seconds: u64, pub provider_request_id: Option, pub provider_out_id: Option, pub provider: String, pub scene: String, pub phone_number_masked: String, } #[derive(Clone, Debug, PartialEq, Eq)] pub struct PhoneLoginResult { pub user: AuthUser, pub created: bool, pub provider: String, pub provider_out_id: Option, pub phone_number_masked: String, } #[derive(Clone, Debug, PartialEq, Eq)] pub struct ResolveWechatLoginResult { pub user: AuthUser, pub created: bool, } #[derive(Clone, Debug, PartialEq, Eq)] pub struct CreateWechatAuthStateResult { pub state: WechatAuthStateRecord, } #[derive(Clone, Debug, PartialEq, Eq)] pub struct ConsumeWechatAuthStateResult { pub state: WechatAuthStateRecord, } #[derive(Clone, Debug, PartialEq, Eq)] pub struct BindWechatPhoneResult { pub user: AuthUser, pub activated_new_user: bool, } #[derive(Clone, Debug, PartialEq, Eq)] pub struct CreateRefreshSessionResult { pub session: RefreshSessionRecord, } #[derive(Clone, Debug, PartialEq, Eq)] pub struct RotateRefreshSessionResult { pub session: RefreshSessionRecord, pub user: AuthUser, } #[derive(Clone, Debug, PartialEq, Eq)] pub struct ListActiveRefreshSessionsResult { pub sessions: Vec, } #[derive(Clone, Debug, PartialEq, Eq)] pub struct RevokeRefreshSessionResult { pub session_id: String, pub revoked: bool, } #[derive(Clone, Debug, PartialEq, Eq)] pub struct LogoutCurrentSessionResult { pub user: AuthUser, } #[derive(Clone, Debug, PartialEq, Eq)] pub struct LogoutAllSessionsResult { pub user: AuthUser, } #[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)] pub struct AuthStoreSnapshotProcedureResult { pub ok: bool, pub record: Option, pub error_message: Option, }