mirror of
https://github.com/vlang/v.git
synced 2025-08-03 09:47:15 -04:00
crypto: add JWT Payload Decoding sample (#23275)
This commit is contained in:
parent
7eec8b1cd7
commit
f8c9edde55
@ -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
|
||||
}
|
||||
```
|
Loading…
x
Reference in New Issue
Block a user