diff --git a/.gitignore b/.gitignore index a3bb07f..a49e080 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /target authorize_data/ +.idea/ diff --git a/README.md b/README.md index ea07297..617a1d2 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,9 @@ #### http接口 -| 方法 | doc | 请求字段 | -| ---- | ---- | ---- | +| 方法 | doc | 请求字段 | +|----------|----------------|-------------------| | /create | 根据项目、设备生成token | project、device_id | -| /verify | 验证token有效性 | token | -| /info | 查询token信息 | token | -| /disable | 禁用token | token | -| /enable | 启用token | token | -| /renewal | token续期 | token、days | \ No newline at end of file +| /verify | 验证token有效性 | token | +| /info | 查询token信息 | token | +| /reset | 更新token状态 | token、enable | +| /renewal | token续期 | token、days | \ No newline at end of file diff --git a/src/main.rs b/src/main.rs index 93a6bbe..8b5bf1f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -46,14 +46,11 @@ async fn main() -> Result<(), Box> { .route("/create", get(create_token)) .route("/verify", get(verify_token)) .route("/info", get(get_token_info)) - .route("/disable", get(disable_token)) - .route("/enable", get(enable_token)) + .route("/reset", get(update_token_status)) .route("/renewal", get(renewal_token)) .with_state(state); - let listener = tokio::net::TcpListener::bind("127.0.0.1:3009") - .await - .unwrap(); + let listener = tokio::net::TcpListener::bind("0.0.0.0:3009").await.unwrap(); axum::serve(listener, app).await.unwrap(); Ok(()) } @@ -165,35 +162,16 @@ async fn get_token_info( } } -async fn disable_token( +async fn update_token_status( State(state): State, - Query(args): Query, + Query(args): Query, ) -> (StatusCode, Json) { - let result = state.db.update_token_state(&args.token, 0).await.unwrap(); - if result { - ( - StatusCode::OK, - Json(VerifyResult { - code: 200, - msg: "操作成功".to_owned(), - }), - ) + let result = if args.enable { + state.db.update_token_state(&args.token, 1).await.unwrap() } else { - ( - StatusCode::OK, - Json(VerifyResult { - code: 404, - msg: "操作失败".to_owned(), - }), - ) - } -} + state.db.update_token_state(&args.token, 0).await.unwrap() + }; -async fn enable_token( - State(state): State, - Query(args): Query, -) -> (StatusCode, Json) { - let result = state.db.update_token_state(&args.token, 1).await.unwrap(); if result { ( StatusCode::OK, @@ -332,3 +310,9 @@ struct CreateTokenInfo { token: String, msg: String, } + +#[derive(Deserialize)] +struct UpdateTokenStatus { + token: String, + enable: bool, +}