use std::time::{Duration, SystemTime, UNIX_EPOCH};
use scion_sdk_token_validator::validator::Token;
use serde::{Deserialize, Serialize};
use crate::Pssid;
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct SessionTokenClaims {
pub pssid: Pssid,
pub data_plane_id: usize,
pub exp: u64,
}
impl Token for SessionTokenClaims {
fn id(&self) -> String {
self.pssid.to_string()
}
fn exp_time(&self) -> SystemTime {
UNIX_EPOCH + Duration::from_secs(self.exp)
}
fn required_claims() -> Vec<&'static str> {
vec!["pssid", "data_plane_id", "exp"]
}
}