Skip to main content

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