my-app 0.1.0

A web application providing user management and authentication
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use jsonwebtoken::{encode, Header, EncodingKey};
use crate::account::models::Claims;
use std::time::{SystemTime, UNIX_EPOCH};

pub fn generate_jwt(user_id: &str) -> Result<String, jsonwebtoken::errors::Error> {
    let expiration = SystemTime::now()
        .duration_since(UNIX_EPOCH)
        .expect("Time went backwards")
        .as_secs() + 3600; // 1 hour expiration

    let claims = Claims {
        sub: user_id.to_owned(),
        exp: expiration as usize,
    };

    encode(&Header::default(), &claims, &EncodingKey::from_secret("secret".as_ref()))
}