oxide_framework_core/auth/token.rs
1//! Encode JWTs (tests, login handlers).
2
3use jsonwebtoken::{Algorithm, EncodingKey, Header};
4
5use super::claims::AuthClaims;
6
7/// Encode [`AuthClaims`] as an HS256 JWT string.
8pub fn encode_token(claims: &AuthClaims, secret: &[u8]) -> Result<String, jsonwebtoken::errors::Error> {
9 let key = EncodingKey::from_secret(secret);
10 let mut header = Header::new(Algorithm::HS256);
11 header.typ = Some("JWT".into());
12 jsonwebtoken::encode(&header, claims, &key)
13}
14