aboutsummaryrefslogtreecommitdiffstats
path: root/site/content/JWT.md
diff options
context:
space:
mode:
authoralpaylan2021-04-16 01:03:21 +0300
committeralpaylan2021-04-16 01:03:21 +0300
commitd248309f8595701a0fddd2462b963bcad55f18c8 (patch)
tree109d4e2809f9f3392612e86ab3d5a47df5830b11 /site/content/JWT.md
parent711d987b8e060682cf2215f25392415e206b3e8d (diff)
parenta1af17aad7c1308fc714a60595bae07cc8bb8a9a (diff)
downloadgradecoin-d248309f8595701a0fddd2462b963bcad55f18c8.tar.gz
gradecoin-d248309f8595701a0fddd2462b963bcad55f18c8.tar.bz2
gradecoin-d248309f8595701a0fddd2462b963bcad55f18c8.zip
Merge remote-tracking branch 'origin/main'
# Conflicts: # src/schema.rs
Diffstat (limited to 'site/content/JWT.md')
-rw-r--r--site/content/JWT.md41
1 files changed, 41 insertions, 0 deletions
diff --git a/site/content/JWT.md b/site/content/JWT.md
new file mode 100644
index 0000000..46da1a2
--- /dev/null
+++ b/site/content/JWT.md
@@ -0,0 +1,41 @@
1+++
2title = "JWT"
3description = "JSON Web Token Documentation"
4weight = 4
5+++
6
7> JSON Web Tokens are representations of claims, or authorization proofs that fit into the `Header` of HTTP requests.
8
9# How?
10
11JWTs are used as the [MAC](https://en.wikipedia.org/wiki/Message_authentication_code) of operations that require authorization:
12- block proposal
13- transaction proposal.
14
15They are send alongside the JSON request body in the `Header`;
16
17```html
18Authorization: Bearer aaaaaa.bbbbbb.ccccc
19```
20
21Gradecoin uses 3 fields for the JWTs;
22
23```json
24{
25"tha": "Hash of the payload, check invididual references",
26"iat": "Issued At, Unix Time",
27"exp": "Expiration Time, epoch"
28}
29```
30
31- `tha` is explained in [blocks](@/block_docs.md) and [transactions](@/transaction_docs.md) documentations.
32- `iat` when the JWT was created in [Unix Time](https://en.wikipedia.org/wiki/Unix_time) format
33- `exp` when the JWT will expire & be rejected in [Unix Time](https://en.wikipedia.org/wiki/Unix_time)
34
35# Algorithm
36We are using [RS256](https://www.rfc-editor.org/rfc/rfc7518.html#section-3.1), `RSASSA-PKCS1-v1_5 using SHA-256`. The JWTs you encode with your private RSA key will be decoded using the public key you have authenticated with. You can see how the process works [here](https://jwt.io/).
37
38# References
39- [RFC, the ultimate reference](https://tools.ietf.org/html/rfc7519)
40- [JWT Debugger](https://jwt.io/)
41