Files
vben-app/src/modules/auth/captcha/router.rs
T
2026-10-01 18:38:10 +08:00

77 lines
5.8 KiB
Rust

use std::collections::HashMap;
use serde_json::{Value, json};
use crate::app::AppState;
use crate::app::error::{ApiResult};
use crate::app::response::ApiResponse;
use crate::modules::auth::captcha::model::{AuthCaptchaVo, LoginVo, UserVo};
use axum::{Router, debug_handler, routing};
pub fn create_auth_router() -> Router<AppState> {
Router::new().route("/code", routing::get(get_one))
.route("/login", routing::post(login))
.route("/login", routing::get(user))
}
pub fn create_pub_router() -> Router<AppState> {
Router::new().route("/user", routing::get(user))
}
#[debug_handler]
pub async fn get_one() -> ApiResult<ApiResponse<AuthCaptchaVo>> {
print!("111");
let vo = AuthCaptchaVo {
uuid: String::from("11234321"),
captcha_enabled: false,
img: String::from(
"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",
),
};
Ok(ApiResponse::ok("ok", Some(vo)))
}
#[debug_handler]
pub async fn login() -> ApiResult<ApiResponse<LoginVo>> {
let vo = LoginVo {
access_token: "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjp1MSIsInJuU3RyIjoiZ1RxUHRRZmZLYm4xcmdzSzZkWTc2Qzh4cFoxV01KZUkiLCJjbGllbnRpZCI6ImU1Y2Q3ZTQ4OTFiZjk1ZDFkMTkyMDZjZTI0YTdiMzJlIiwidXNlcklkIjoidTEiLCJ1c2VyTmFtZSI6ImFkbWluIiwib3JnaWQiOiJvMTAwMCIsIm9yZ25hIjoiWFjnp5HmioAifQ.a5eDnQTXcQ5D34_FaOFsJZB_yYwRkRAKwstwhqLjpVc".to_string(),
refresh_token: "".to_string(),
expire_in: 604800,
refresh_expire_in: 604800,
client_id: "".to_string(),
scope: "".to_string(),
openid: "".to_string(),
};
Ok(ApiResponse::ok("ok", Some(vo)))
}
#[debug_handler]
pub async fn user() -> ApiResult<ApiResponse<HashMap<String, Value>>> {
let vo = UserVo {
useid: "u1".to_string(),
usena: "admin".to_string(),
nicna: "管理员".to_string(),
usety: None,
orgid: "o1000".to_string(),
orgna: "XX科技".to_string(),
tenid: None,
email: None,
monum: "13812345678".to_string(),
gender: "1".to_string(),
// avatar: Some("https://unpkg.com/@vbenjs/static-source@0.1.7/source/avatar-v1.webp".to_string()),
avatar: Some("/api/tool/oss/show?id=2015240095127236608".to_string()),
avtag: None,
loip: None,
lotim: None,
notes: None,
crtim: None,
roids: None,
poids: None,
rolid: None,
};
let mut map: HashMap<String, Value> = HashMap::new();
map.insert("user".to_string(), json!(vo));
map.insert("perms".to_string(), json!(["*:*:*"]));
map.insert("roles".to_string(), json!(["superadmin"]));
Ok(ApiResponse::ok("操纵成功", Some(map)))
}