feat(server-rs): 接入真实短信验证码链路
This commit is contained in:
@@ -16,6 +16,7 @@ use module_runtime::RuntimeSnapshotRecord;
|
||||
use module_runtime::{SAVE_SNAPSHOT_VERSION, format_utc_micros};
|
||||
use platform_auth::{
|
||||
JwtConfig, JwtError, RefreshCookieConfig, RefreshCookieError, RefreshCookieSameSite,
|
||||
SmsAuthConfig, SmsAuthProvider, SmsAuthProviderKind, SmsProviderError,
|
||||
};
|
||||
use platform_llm::{LlmClient, LlmConfig, LlmError};
|
||||
use platform_oss::{OssClient, OssConfig, OssError};
|
||||
@@ -54,6 +55,7 @@ pub struct AppState {
|
||||
pub enum AppStateInitError {
|
||||
Jwt(JwtError),
|
||||
RefreshCookie(RefreshCookieError),
|
||||
SmsProvider(SmsProviderError),
|
||||
Oss(OssError),
|
||||
Llm(LlmError),
|
||||
}
|
||||
@@ -78,9 +80,30 @@ impl AppState {
|
||||
)?;
|
||||
let oss_client = build_oss_client(&config)?;
|
||||
let auth_store = InMemoryAuthStore::default();
|
||||
let sms_provider = SmsAuthProvider::new(SmsAuthConfig::new(
|
||||
SmsAuthProviderKind::parse(&config.sms_auth_provider).ok_or_else(|| {
|
||||
SmsProviderError::InvalidConfig("短信 provider 配置非法".to_string())
|
||||
})?,
|
||||
config.sms_endpoint.clone(),
|
||||
config.sms_access_key_id.clone(),
|
||||
config.sms_access_key_secret.clone(),
|
||||
config.sms_sign_name.clone(),
|
||||
config.sms_template_code.clone(),
|
||||
config.sms_template_param_key.clone(),
|
||||
config.sms_country_code.clone(),
|
||||
config.sms_scheme_name.clone(),
|
||||
config.sms_code_length,
|
||||
config.sms_code_type,
|
||||
config.sms_valid_time_seconds,
|
||||
config.sms_interval_seconds,
|
||||
config.sms_duplicate_policy,
|
||||
config.sms_case_auth_policy,
|
||||
config.sms_return_verify_code,
|
||||
config.sms_mock_verify_code.clone(),
|
||||
)?)?;
|
||||
let password_entry_service = PasswordEntryService::new(auth_store.clone());
|
||||
let auth_user_service = AuthUserService::new(auth_store.clone());
|
||||
let phone_auth_service = PhoneAuthService::new(auth_store.clone());
|
||||
let phone_auth_service = PhoneAuthService::new(auth_store.clone(), sms_provider);
|
||||
let wechat_auth_state_service =
|
||||
WechatAuthStateService::new(auth_store.clone(), config.wechat_state_ttl_minutes);
|
||||
let wechat_auth_service = WechatAuthService::new(auth_store.clone());
|
||||
@@ -331,6 +354,7 @@ impl fmt::Display for AppStateInitError {
|
||||
match self {
|
||||
Self::Jwt(error) => write!(f, "{error}"),
|
||||
Self::RefreshCookie(error) => write!(f, "{error}"),
|
||||
Self::SmsProvider(error) => write!(f, "{error}"),
|
||||
Self::Oss(error) => write!(f, "{error}"),
|
||||
Self::Llm(error) => write!(f, "{error}"),
|
||||
}
|
||||
@@ -351,6 +375,12 @@ impl From<RefreshCookieError> for AppStateInitError {
|
||||
}
|
||||
}
|
||||
|
||||
impl From<SmsProviderError> for AppStateInitError {
|
||||
fn from(value: SmsProviderError) -> Self {
|
||||
Self::SmsProvider(value)
|
||||
}
|
||||
}
|
||||
|
||||
impl From<OssError> for AppStateInitError {
|
||||
fn from(value: OssError) -> Self {
|
||||
Self::Oss(value)
|
||||
|
||||
Reference in New Issue
Block a user