oxide-framework-core 0.1.0

Core runtime and framework logic for the Oxide web framework.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//! Encode JWTs (tests, login handlers).

use jsonwebtoken::{Algorithm, EncodingKey, Header};

use super::claims::AuthClaims;

/// Encode [`AuthClaims`] as an HS256 JWT string.
pub fn encode_token(claims: &AuthClaims, secret: &[u8]) -> Result<String, jsonwebtoken::errors::Error> {
    let key = EncodingKey::from_secret(secret);
    let mut header = Header::new(Algorithm::HS256);
    header.typ = Some("JWT".into());
    jsonwebtoken::encode(&header, claims, &key)
}