next_web_dev/util/token_util.rs
1// use jsonwebtoken::{encode, Algorithm, DecodingKey, EncodingKey, Header, Validation};
2
3
4// pub struct TokenUtil;
5
6// const SECRET_KEY: &'static [u8] = b"next-web-jwt-secret";
7
8// impl TokenUtil {
9// pub fn generate_token(user_info: &UserInfo) -> String {
10// // generate a new JWT token
11// let mut header = Header::new(Algorithm::HS512);
12// header.kid = Some("daydream-key".into());
13// let token = encode(
14// &header,
15// user_info,
16// &EncodingKey::from_secret(SECRET_KEY.as_ref()),
17// )
18// .unwrap();
19// return token;
20// }
21
22// pub fn decode(token: &str) -> Result<UserInfo, jsonwebtoken::errors::Error> {
23// // decode a JWT token
24// let mut validation = Validation::new(Algorithm::HS512);
25// validation.set_required_spec_claims(&["exp"]);
26// let token_data = jsonwebtoken::decode::<UserInfo>(
27// token,
28// &DecodingKey::from_secret(SECRET_KEY.as_ref()),
29// &validation,
30// )?;
31// Ok(token_data.claims)
32// }
33// }