crypto: add JWT Payload Decoding sample (#23275)

This commit is contained in:
Keito Tobichi 2024-12-26 23:41:36 +09:00 committed by GitHub
parent 7eec8b1cd7
commit f8c9edde55
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -71,9 +71,11 @@ fn main() {
secret := 'your-256-bit-secret'
token := make_token(secret)
ok := auth_verify(secret, token)
pl := decode_payload(token) or { panic(err) }
dt := sw.elapsed().microseconds()
println('token: ${token}')
println('auth_verify(secret, token): ${ok}')
println('decode_payload(token): ${pl}')
println('Elapsed time: ${dt} uS')
}
@ -93,4 +95,10 @@ fn auth_verify(secret string, token string) bool {
signature_from_token := base64.url_decode(token_split[2])
return hmac.equal(signature_from_token, signature_mirror)
}
```
fn decode_payload(token string) !JwtPayload {
token_split := token.split('.')
payload := json.decode(JwtPayload, base64.url_decode_str(token_split[1]))!
return payload
}
```