Browse Source

support sha256 token

master
hole-thu 3 years ago
parent
commit
e531f0fed8
  1. 14
      src/models.rs

14
src/models.rs

@ -14,6 +14,7 @@ use diesel::{
};
use rocket::futures::{future, join};
use rocket::serde::{Deserialize, Serialize};
use sha2::{Digest, Sha256};
use std::collections::HashMap;
no_arg_sql_function!(RANDOM, (), "Represents the sql RANDOM() function");
@ -388,6 +389,19 @@ impl User {
}
pub async fn get_by_token(db: &Db, rconn: &RdsConn, token: &str) -> Option<Self> {
let real_token;
let token = match &token.split(':').collect::<Vec<&str>>()[..] {
["sha256", tk] => {
let mut h = Sha256::new();
h.update(tk);
h.update("hole");
real_token = format!("{:x}", h.finalize())[0..16].to_string();
&real_token
}
_ => token,
};
// dbg!(token);
let mut cacher = UserCache::init(token, &rconn);
if let Some(u) = cacher.get().await {
Some(u)

Loading…
Cancel
Save