feat(payment): 实现网页端登录码流程(无需微信登录)
- 新增 GET /payment/generate-code:网页端生成 ASD-XXXXXX 登录码 - 新增 GET /payment/login-status:网页轮询查询登录码确认状态 - web_generate_login_code 和 web_login_confirm 增加 JWT 保护 - payment_index JS 改为真实调用 generate-code 并轮询 - 添加 rand crate 依赖
This commit is contained in:
12
src/main.rs
12
src/main.rs
@@ -18,9 +18,9 @@ use config::AppConfig;
|
||||
use db::create_pool;
|
||||
use handlers::{
|
||||
admin_get_user, admin_update_user_payment, add_favorite, alipay_notify, alipay_pay_page,
|
||||
create_order, delete_weather, generate_temp_token_handler, get_current_user_profile,
|
||||
get_favorites, get_user_quota, get_weather_brief, get_weather_details,
|
||||
health_check, login, mock_login, mock_confirm, payment_index, payment_page, payment_success,
|
||||
create_order, delete_weather, generate_code, generate_temp_token_handler, get_current_user_profile,
|
||||
get_favorites, get_user_quota, get_weather_brief, get_weather_details,
|
||||
health_check, login, mock_login, mock_confirm, payment_index, payment_login_status, payment_page, payment_success,
|
||||
post_weather_data,
|
||||
refresh_token, remove_favorite, root, save_user_profile, serve_static_files,
|
||||
web_generate_login_code, web_login_confirm,
|
||||
@@ -65,17 +65,17 @@ fn create_server_config(
|
||||
.service(root) // #[get("/")] - 返回服务信息
|
||||
// 支付页面(无需认证,外部浏览器访问)
|
||||
.service(payment_index) // GET /payment — 套餐选择页
|
||||
.service(generate_code) // GET /payment/generate-code — 网页生成登录码
|
||||
.service(payment_page) // GET /payment/page(需 JWT)
|
||||
.service(payment_success)
|
||||
.service(alipay_pay_page) // GET /payment/pay(需 JWT)
|
||||
.service(alipay_notify) // POST /payment/notify(支付宝异步回调)
|
||||
.service(payment_login_status) // GET /payment/login-status(网页轮询)
|
||||
// 静态文件(无需认证)
|
||||
.service(web::resource("/static/{tail:.*}").route(web::get().to(serve_static_files)))
|
||||
// API 接口
|
||||
.service(login) // #[post("/api/login")]
|
||||
.service(mock_login) // #[get("/api/mock-login")](沙箱测试用)
|
||||
.service(web_generate_login_code) // #[post("/api/web-login/code")](网页端微信登录)
|
||||
.service(web_login_confirm) // #[post("/api/web-login/confirm")](网页端登录确认)
|
||||
.service(refresh_token) // #[post("/api/refresh-token")](公开接口,无需认证)
|
||||
.service(get_weather_details) // #[get("/weather/details")](支持 JWT 或 temp_token,公开接口)
|
||||
.service(health_check) // #[get("/health")](公开接口,无需认证)
|
||||
@@ -97,6 +97,8 @@ fn create_server_config(
|
||||
.service(get_favorites) // #[get("/api/favorites")]
|
||||
.service(add_favorite) // #[post("/api/favorites/{id}")]
|
||||
.service(remove_favorite) // #[delete("/api/favorites/{id}")]
|
||||
.service(web_generate_login_code) // #[post("/api/web-login/code")](需 JWT)
|
||||
.service(web_login_confirm) // #[post("/api/web-login/confirm")](需 JWT)
|
||||
)
|
||||
// 健康检查
|
||||
.service(health_check)
|
||||
|
||||
Reference in New Issue
Block a user