framework-cqrs-lib 0.4.0

handle state-machine with data persist in journal and store mongo for restfull actix api
Documentation
use crate::cqrs::core::token::CanEncodeToken;
use jsonwebtoken::{EncodingKey, Header};
use serde::{Deserialize, Serialize};
use std::fmt::Debug;

pub struct JwtHMACEncoderTokenService {
    secret: String,
}

impl JwtHMACEncoderTokenService {
    pub fn new(secret: String) -> Self {
        Self {
            secret
        }
    }
}

impl CanEncodeToken for JwtHMACEncoderTokenService {
    fn encode<'a, CLAIMS: Debug + Serialize + Deserialize<'a>>(&self, claims: CLAIMS) -> String {
        let secret_key = EncodingKey::from_secret(self.secret.as_bytes());
        let header = Header::new(jsonwebtoken::Algorithm::HS256);
        jsonwebtoken::encode(&header, &claims, &secret_key).unwrap()
    }
}