farcaster_rs/account/auth/
revoke_session_token.rs1use serde_json::{json, Value};
2
3use crate::types::account::auth::revoke::RevokedKeyRoot;
4use crate::{constants::merkle::API_ROOT, types::account::auth::secret::SecretToken, Farcaster};
5use chrono::Utc;
6use std::error::Error;
7
8impl Farcaster {
9 pub async fn revoke_session_token(
12 token: &SecretToken,
13 ) -> Result<RevokedKeyRoot, Box<dyn Error>> {
14 let payload: Value = json!({
15 "method": "revokeToken",
16 "params": {
17 "timestamp": Utc::now().timestamp_millis()
18 }
19 });
20
21 let revoke_reqwest = reqwest::Client::new()
22 .delete(format!("{}/v2/auth", API_ROOT))
23 .header("Content-Type", "application/json")
24 .header("Authorization", &token.secret)
25 .json(&payload)
26 .send()
27 .await?
28 .text()
29 .await?;
30
31 let revoke: RevokedKeyRoot = serde_json::from_str(&revoke_reqwest)?;
32
33 Ok(revoke)
34 }
35}