refactor: dry decode token

This commit is contained in:
EETagent 2022-10-25 16:44:08 +02:00
parent 9eaf0eb347
commit 4a852fa915

View file

@ -11,6 +11,7 @@ use jsonwebtoken::{Header, Validation};
use admin_token::AdminToken; use admin_token::AdminToken;
use candidate_token::CandidateToken; use candidate_token::CandidateToken;
use serde::Deserialize;
const ONE_WEEK: i64 = 60 * 60 * 24 * 7; const ONE_WEEK: i64 = 60 * 60 * 24 * 7;
@ -46,20 +47,20 @@ pub fn generate_admin_token(_admin: admin::Model) -> String {
.unwrap() .unwrap()
} }
pub fn decode_candidate_token(token: String) -> Result<TokenData<CandidateToken>> { pub fn decode_token<T: for<'a> Deserialize<'a>>(token: String) -> Result<TokenData<T>> {
jsonwebtoken::decode::<CandidateToken>( jsonwebtoken::decode::<T>(
&token, &token,
&DecodingKey::from_secret(include_bytes!("secret.key")), &DecodingKey::from_secret(include_bytes!("secret.key")),
&Validation::default(), &Validation::default(),
) )
} }
pub fn decode_candidate_token(token: String) -> Result<TokenData<CandidateToken>> {
decode_token(token)
}
pub fn decode_admin_token(token: String) -> Result<TokenData<AdminToken>> { pub fn decode_admin_token(token: String) -> Result<TokenData<AdminToken>> {
jsonwebtoken::decode::<AdminToken>( decode_token(token)
&token,
&DecodingKey::from_secret(include_bytes!("secret.key")),
&Validation::default(),
)
} }
/*pub fn verify_token(token_data: &TokenData<UserToken>, conn: &DbConn) -> bool { /*pub fn verify_token(token_data: &TokenData<UserToken>, conn: &DbConn) -> bool {