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// }