//! 认证写入命令。 //! //! 用于表达密码入口、手机号验证码、微信登录、刷新会话签发和吊销等用例输入。 use serde::{Deserialize, Serialize}; use crate::domain::{ AuthLoginMethod, PhoneAuthScene, RefreshSessionClientInfo, WechatAuthScene, WechatIdentityProfile, }; #[derive(Clone, Debug, PartialEq, Eq)] pub struct PasswordEntryInput { pub phone_number: String, pub password: String, } #[derive(Clone, Debug, PartialEq, Eq)] pub struct ChangePasswordInput { pub user_id: String, pub current_password: Option, pub new_password: String, } #[derive(Clone, Debug, PartialEq, Eq)] pub struct ResetPasswordInput { pub phone_number: String, pub verify_code: String, pub new_password: String, } #[derive(Clone, Debug, PartialEq, Eq)] pub struct UpdateProfileInput { pub user_id: String, pub display_name: Option, pub avatar_url: Option, } #[derive(Clone, Debug, PartialEq, Eq)] pub struct SendPhoneCodeInput { pub phone_number: String, pub scene: PhoneAuthScene, } #[derive(Clone, Debug, PartialEq, Eq)] pub struct PhoneLoginInput { pub phone_number: String, pub verify_code: String, } #[derive(Clone, Debug, PartialEq, Eq)] pub struct ResolveWechatLoginInput { pub profile: WechatIdentityProfile, } #[derive(Clone, Debug, PartialEq, Eq)] pub struct CreateWechatAuthStateInput { pub redirect_path: String, pub scene: WechatAuthScene, pub request_user_agent: Option, } #[derive(Clone, Debug, PartialEq, Eq)] pub struct BindWechatPhoneInput { pub user_id: String, pub phone_number: String, pub verify_code: String, } #[derive(Clone, Debug, PartialEq, Eq)] pub struct BindWechatVerifiedPhoneInput { pub user_id: String, pub phone_number: String, } #[derive(Clone, Debug, PartialEq, Eq)] pub struct CreateRefreshSessionInput { pub user_id: String, pub refresh_token_hash: String, pub issued_by_provider: AuthLoginMethod, pub client_info: RefreshSessionClientInfo, } #[derive(Clone, Debug, PartialEq, Eq)] pub struct RotateRefreshSessionInput { pub refresh_token_hash: String, pub next_refresh_token_hash: String, } #[derive(Clone, Debug, PartialEq, Eq)] pub struct RevokeRefreshSessionByUserInput { pub user_id: String, pub session_id: String, } #[derive(Clone, Debug, PartialEq, Eq)] pub struct LogoutCurrentSessionInput { pub user_id: String, pub refresh_token_hash: Option, pub session_id: Option, } #[derive(Clone, Debug, PartialEq, Eq)] pub struct LogoutAllSessionsInput { pub user_id: String, } #[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)] pub struct AuthStoreSnapshotUpsertInput { pub snapshot_json: String, pub updated_at_micros: i64, }