api_tools/server/axum/security/jwt/
payload.rs1use super::Jwt;
4use serde::{Deserialize, Serialize};
5use std::fmt::Debug;
6use thiserror::Error;
7
8#[derive(Debug, Clone, PartialEq, Error)]
10pub enum PayloadError {
11 #[error("Missing token")]
12 MissingToken,
13
14 #[error("Invalid token: {0}")]
15 ParseTokenError(String),
16
17 #[error("Invalid headers")]
18 InvalidHeaders,
19}
20
21pub trait PayloadExtractor<H, P: Debug + Serialize + for<'de> Deserialize<'de>> {
22 fn try_from_headers(headers: &H, jwt: &Jwt) -> Result<P, PayloadError>;
24}