MCPcopy Create free account
hub / github.com/chirpstack/chirpstack / test_for_user

Function test_for_user

chirpstack/src/api/auth/claims.rs:71–104  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

69
70 #[test]
71 fn test_for_user() {
72 let secrect = &"verysecret";
73 let other_secret = &"notsosecret";
74 let user_id = Uuid::new_v4();
75 let key_id = Uuid::new_v4();
76
77 let nbf: DateTime<Utc> = Utc::now();
78 let exp = nbf.add(-Duration::try_days(1).unwrap());
79
80 let claim = AuthClaim::new_for_api_key(&key_id);
81 assert_eq!("key", claim.typ);
82 assert_eq!(key_id.to_string(), claim.sub);
83
84 let token = claim.encode(secrect.as_ref()).unwrap();
85 let decoded = AuthClaim::decode(&token, secrect.as_ref()).unwrap();
86 assert_eq!(claim, decoded);
87
88 // user token
89 let mut claim = AuthClaim::new_for_user(&user_id);
90 assert_eq!("user", claim.typ);
91 assert_eq!(user_id.to_string(), claim.sub);
92
93 let token = claim.encode(secrect.as_ref()).unwrap();
94 let decoded = AuthClaim::decode(&token, secrect.as_ref()).unwrap();
95 assert_eq!(claim, decoded);
96
97 // different key
98 assert!(AuthClaim::decode(&token, other_secret.as_ref()).is_err());
99
100 // expired
101 claim.exp = Some(exp.timestamp() as usize);
102 let token = claim.encode(secrect.as_ref()).unwrap();
103 assert!(AuthClaim::decode(&token, secrect.as_ref()).is_err());
104 }
105}

Callers

nothing calls this directly

Calls 4

unwrapMethod · 0.80
as_refMethod · 0.80
decodeFunction · 0.50
encodeMethod · 0.45

Tested by

no test coverage detected