Skip to content

Commit e8cbf26

Browse files
committed
Angular Security course
1 parent bb1729b commit e8cbf26

File tree

7 files changed

+79
-17
lines changed

7 files changed

+79
-17
lines changed

demos/jwt-check-hs256.js

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,27 @@
11

22
var jwt = require('jsonwebtoken');
33

4-
console.log("Verify JWT example using HMAC SHA256");
5-
64

75
// verify an existing JWT
8-
9-
var existingToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InRlc3RAbWFpbGluYXRvci5jb20iLCJpYXQiOjE1MDI4NzY5NzJ9.ekc_eGqp7ex1zqJyJn_huy2Q-0U78tUKuOeyJhnsQ8M';
6+
var existingToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InRlc3RAbWFpbGluYXRvci5jb20iLCJpYXQiOjE1MDI4ODAzNTJ9.uXXUBgipNmjvb4UvEnQ0LOdO8aKxne9Wg01jcoj3YWE';
107

118

129
var secretKey = 'secret-key';
1310

14-
const verify = jwt.verify(existingToken, secretKey);
11+
12+
13+
const verify = jwt.verify(existingToken, secretKey, {algorithm: 'HS256' });
1514

1615

1716
console.log("Decoded JWT:", verify);
1817

18+
19+
20+
21+
//const wrong = jwt.verify(existingToken, 'wrong-secret');
22+
23+
//console.log(":", wrong);
24+
25+
26+
27+

demos/jwt-check-rs256.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
2+
var jwt = require('jsonwebtoken');
3+
var fs = require('fs');
4+
5+
6+
// verify an existing JWT
7+
var existingToken = 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InRlc3RAbWFpbGluYXRvci5jb20iLCJpYXQiOjE1MDI4ODAzODB9.LiZZp_SIy2TApLnJGjWfWhKUU0uc6oh5wJa5gLY4l82cmgB4MGMssxbagaIROmkmSA68tk57YihBmbz7d76lyV1dWw6HAZ6KttvkHnvk8Zyg0QethIG6TYPJ083H_xWUBTDDF-bQCXf3AgELMuKyUWqVONW294tW5n7vKqo41eMx-r372oxHdL9Du_GzZ2LJrWtxPnaIWh5hb0MiPz5KNKlWh0D4MBb-lEkmghc7QE69mIKJ2u3-ZYe_i3KGEclCZArKusmpxfhNbmfvU_JX2kF7ko4HS5qe4a7ZV04Bzgovz5TNZ-13j79jSWpWod3jA_xZZfLfMpgBhteWuxhImw';
8+
9+
10+
var publicKey = fs.readFileSync('./demos/public.key');
11+
12+
13+
console.log("verifying");
14+
15+
const verify = jwt.verify(existingToken, publicKey, {algorithm: 'RS256' });
16+
17+
18+
19+
console.log("Decoded JWT:", verify);
20+

demos/jwt-hs256.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11

2-
console.log(" Create JWT example using HMAC SHA256");
3-
42
var jwt = require('jsonwebtoken');
53

64

@@ -15,7 +13,7 @@ var payload = {
1513
// create a JWT
1614
var newToken = jwt.sign(payload, secretKey, {algorithm: 'HS256' });
1715

18-
console.log("JWT created:", newtoken);
16+
console.log("JWT created:", newToken);
1917

2018

2119

demos/jwt-rs256.js

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,21 @@
11

2-
console.log(" JWT example using HMAC SHA256");
3-
42
var jwt = require('jsonwebtoken');
3+
var fs = require('fs');
54

65

7-
8-
var privateKey = 'private-key';
9-
10-
11-
6+
var privateKey = fs.readFileSync('./demos/private.key');
127

138
var payload = {
149
email: 'test@mailinator.com'
1510
};
1611

1712

18-
var token = jwt.sign(payload, secretKey, {algorithm: 'RS256' });
13+
var token = jwt.sign(payload, privateKey, {algorithm: 'RS256' });
14+
15+
16+
console.log('RSA 256 JWT', token);
1917

2018

21-
console.log(token);
2219

2320

2421

demos/private.key

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
-----BEGIN RSA PRIVATE KEY-----
2+
MIIEowIBAAKCAQEAy045zvgkxhA7SlR5dzYZ+THQuUyEANqT1OWgijaTSULYIf/z
3+
pnAKIxB2hyIxADeRgQEfHJ8mpdWCkblxIeWancxi/7gQNeWv++7SIWDGKL3oj4wG
4+
1Q9zU0/IMQy5wb0Nb1tvdgRNDSpz7f4fYYzgXcsvDP34C+PScfoxJjPesRXiDErV
5+
H8VjuBOPWa1vIcDJZfAGg0vsvHV+3YfOtegmHEgGWS0tf4I2M+gB0gT2QSi83Gva
6+
ywcB5lkWnc6iJIy9nq8Ls8+5FVIY53Fus+tIthjZNAWYxqhvGcdgUxl5JnoDcGbR
7+
q8QzzS5CJw1fPbpetq1khXzQbJ69NKU2O97XdQIDAQABAoIBAQCBo4odPgJFAgis
8+
px0lNSxuyKMt5WqvGLH3qc0rFQ3qQ2OKmqmFUiBEp7TNCrJwTv7LYimymJGOYY12
9+
2ucXFE/5m2DtazN7CtGjNnBrtEfnpuFq14FrzwRc9ZzUGidBMQomHgn/GVMAuDdg
10+
ZREhpTFU3cFM6Y2IF2gUIdPBZoX0KLsJbcu3bF6BwPV62fOcDNg8Q6VMND0d0aYH
11+
EvkyU0QSTnbhWU2mTz/sm6sZ3Dvcd1M1ijjbYg7lGgungjz1GzG7LQg5PIzLnSHd
12+
EE2iMAtJCglqPKvFIfXD3buL1WodWw82RlxhtWkIKkgu+9Er1kIGU8kcuHqI5/Z+
13+
IpstujEBAoGBAOmtCrhquJrUot+oiz+4R4BMuhpOd3dlesYDHdHMgtlx2ianko7E
14+
HirsNVgB5blyl6unK/aFjZMmcNAkksfUi/g1HO1qm2PtAZDcQX4oFNBSzMcZ+lNt
15+
HPk8Ye541+XbSmw8axVdtBRGcE5f14EDDOATbFokvu7eBhC0nZtuLvBhAoGBAN66
16+
bDk/DY6YC9jSeVdaR2Hp6ExiJuRmwUMrvCJYVRNkOTVlUtS9cY5pSEupScC0bSvv
17+
nTw3fVCRBsPlthkFWi3eUBjuKDQHHOGdbEZwrXqsHQVxqvwGPBBMjA21pF+pAKN1
18+
eLMBZJUCxUCNUissFuKMCcbB6ak9U9wJR3cGv0+VAoGAeC8q41zoY6HXv2blb7ls
19+
9P0BfsQ6x6rm8W7q6FviNMpM5DKtu0X9KiBg80nOiIn6niuV/e4Eudk8jqEw6RxV
20+
fSx8G1QIZeWhN4tBGAyvX9ImRoUC7eOh0kKPL+LxT+Rwq6iLfuq50u/DlVvP8CfM
21+
eHck9FwP47VHs1Hh+e46sCECgYAHj8q20tYx/iWA0fx+o7kCsP9LAJYTcQ2kqypy
22+
/A6/Xsq2bl82i8v8KsTilLfFTBrcwADVl4iwoIvbQMRC6zSZlA+iGQvSYF9xpXeU
23+
mKS7InbFxYspjUiiwQaMPJt9B+7WndlgMm7oxDRQMbwVbSTFwj1euxyku0lKkiIT
24+
/22lVQKBgAHvBX4EuiSCUxFHpK+WMbe3Mq1FLosLAeMB9GUcYPbJ3jMWBymtqkTq
25+
xfLZ4Gb+vMsMTevm1FFWcESw1sa34Knhml31LlAuM2dxvPNi6UiNPrU5dyRxFhFj
26+
TeyJixp8bogtqk8xwQuDDaTZm6LuRytI4143WSoOsijsLacvHnSA
27+
-----END RSA PRIVATE KEY-----

demos/public.key

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
-----BEGIN PUBLIC KEY-----
2+
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy045zvgkxhA7SlR5dzYZ
3+
+THQuUyEANqT1OWgijaTSULYIf/zpnAKIxB2hyIxADeRgQEfHJ8mpdWCkblxIeWa
4+
ncxi/7gQNeWv++7SIWDGKL3oj4wG1Q9zU0/IMQy5wb0Nb1tvdgRNDSpz7f4fYYzg
5+
XcsvDP34C+PScfoxJjPesRXiDErVH8VjuBOPWa1vIcDJZfAGg0vsvHV+3YfOtegm
6+
HEgGWS0tf4I2M+gB0gT2QSi83GvaywcB5lkWnc6iJIy9nq8Ls8+5FVIY53Fus+tI
7+
thjZNAWYxqhvGcdgUxl5JnoDcGbRq8QzzS5CJw1fPbpetq1khXzQbJ69NKU2O97X
8+
dQIDAQAB
9+
-----END PUBLIC KEY-----

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
"verify-password": "node ./demos/verify-password.js",
1616
"jwt-hs256": "node ./demos/jwt-hs256.js",
1717
"jwt-check-hs256": "node ./demos/jwt-check-hs256.js",
18+
"jwt-rs256": "node ./demos/jwt-rs256.js",
19+
"jwt-check-rs256": "node ./demos/jwt-check-rs256.js",
1820
"build": "ng build",
1921
"test": "ng test",
2022
"lint": "ng lint",

0 commit comments

Comments
 (0)