added some comments to address
This commit is contained in:
+4
-4
@@ -6,7 +6,7 @@ use base64::{engine::general_purpose, Engine as _};
|
|||||||
#[derive(Clone, Deserialize, Debug, Serialize)]
|
#[derive(Clone, Deserialize, Debug, Serialize)]
|
||||||
pub struct Token {
|
pub struct Token {
|
||||||
pub user_id: String,
|
pub user_id: String,
|
||||||
pub scope: String
|
pub scope: String // I don't really know what this means?
|
||||||
}
|
}
|
||||||
|
|
||||||
pub struct SignedToken {
|
pub struct SignedToken {
|
||||||
@@ -21,7 +21,6 @@ impl Token {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
pub fn sign(token: &Token, private_key: &SigningKey) -> SignedToken {
|
pub fn sign(token: &Token, private_key: &SigningKey) -> SignedToken {
|
||||||
let issued_at = 1710000000; // example timestamp
|
let issued_at = 1710000000; // example timestamp
|
||||||
let data = (&token, issued_at);
|
let data = (&token, issued_at);
|
||||||
@@ -39,11 +38,12 @@ pub fn verify(signed_token: &SignedToken, public_key: &VerifyingKey) -> Result<(
|
|||||||
let data = (&signed_token.token, signed_token.issued_at);
|
let data = (&signed_token.token, signed_token.issued_at);
|
||||||
let bytes = serde_json::to_vec(&data).unwrap();
|
let bytes = serde_json::to_vec(&data).unwrap();
|
||||||
|
|
||||||
// let sig_bytes = signed_token.signature.as_bytes();
|
// converts from base64
|
||||||
let sig_bytes = general_purpose::STANDARD
|
let sig_bytes = general_purpose::STANDARD
|
||||||
.decode(&signed_token.signature)
|
.decode(&signed_token.signature)
|
||||||
.map_err(|e| e.to_string())?;
|
.map_err(|e| e.to_string())?;
|
||||||
|
|
||||||
|
// can we guarantee length of 64?
|
||||||
let sig_array: [u8; 64] = sig_bytes
|
let sig_array: [u8; 64] = sig_bytes
|
||||||
.try_into()
|
.try_into()
|
||||||
.map_err(|_| "invalid signature length".to_string())?;
|
.map_err(|_| "invalid signature length".to_string())?;
|
||||||
@@ -66,7 +66,7 @@ mod tests {
|
|||||||
use super::*;
|
use super::*;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test1() {
|
fn test_happy_path() {
|
||||||
assert_eq!(4, 4);
|
assert_eq!(4, 4);
|
||||||
|
|
||||||
let json_string = r#"{
|
let json_string = r#"{
|
||||||
|
|||||||
Reference in New Issue
Block a user