added anyhow, improve hamburger menu, improve dw articles
This commit is contained in:
+10
-3
@@ -20,7 +20,8 @@ type HmacSha256 = Hmac<Sha256>;
|
||||
fn signing_key() -> HmacSha256 {
|
||||
dotenv().ok();
|
||||
let secret = env::var("JWT_SECRET").expect("JWT_SECRET must be set");
|
||||
HmacSha256::new_from_slice(secret.as_bytes()).unwrap()
|
||||
// HMAC-SHA256 accepts a key of any length, so this cannot fail.
|
||||
HmacSha256::new_from_slice(secret.as_bytes()).expect("HMAC accepts a key of any length")
|
||||
}
|
||||
|
||||
impl JwtToken {
|
||||
@@ -28,7 +29,10 @@ impl JwtToken {
|
||||
let key: HmacSha256 = signing_key();
|
||||
let mut claims = BTreeMap::new();
|
||||
claims.insert("user_id", user_id);
|
||||
claims.sign_with_key(&key).unwrap()
|
||||
// Signing a simple map of claims with a valid HMAC key cannot fail.
|
||||
claims
|
||||
.sign_with_key(&key)
|
||||
.expect("signing claims with a valid HMAC key cannot fail")
|
||||
}
|
||||
|
||||
pub fn decode(encoded_token: String) -> Result<JwtToken, &'static str> {
|
||||
@@ -52,7 +56,10 @@ impl JwtToken {
|
||||
#[allow(dead_code)]
|
||||
pub fn decode_from_request(request: HttpRequest) -> Result<JwtToken, &'static str> {
|
||||
match request.headers().get("user-token") {
|
||||
Some(token) => JwtToken::decode(String::from(token.to_str().unwrap())),
|
||||
Some(token) => match token.to_str() {
|
||||
Ok(token_str) => JwtToken::decode(String::from(token_str)),
|
||||
Err(_) => Err("token header is not valid text"),
|
||||
},
|
||||
None => Err("There is no token"),
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user