JWT Structure
use jsonwebtoken::{encode, decode, Header, Validation, EncodingKey, DecodingKey};
use serde::{Serialize, Deserialize};
#[derive(Serialize, Deserialize, Clone, Debug)]
struct Claims {
sub: u64,
email: String,
exp: usize,
}
fn sign_token(user: &User, secret: &[u8]) -> String {
encode(
&Header::default(),
&Claims { sub: user.id, email: user.email.clone(), exp: expiry() },
&EncodingKey::from_secret(secret),
).unwrap()
}