Skip to content

Commit 6e20738

Browse files
committed
💫 added jsonwebtoken and request context based on netlify/netlify-lambda#57 implementation
1 parent 6dded7f commit 6e20738

File tree

3 files changed

+87
-1
lines changed

3 files changed

+87
-1
lines changed

‎package.json

+2
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
"@types/body-parser": "^1.17.0",
1919
"@types/express": "^4.16.0",
2020
"@types/git-branch": "^2.0.0",
21+
"@types/jsonwebtoken": "^7.2.8",
2122
"@types/node": "^10.11.7",
2223
"@types/webpack": "^4.4.16"
2324
},
@@ -26,6 +27,7 @@
2627
"commander": "^2.19.0",
2728
"express": "^4.16.4",
2829
"git-branch": "^2.0.1",
30+
"jsonwebtoken": "^8.3.0",
2931
"toml": "^2.3.3",
3032
"webpack": "^4.20.2"
3133
}

‎src/ts/server.ts

+12-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import * as express from "express";
33
import * as bodyParser from "body-parser";
44
import * as serveStatic from "serve-static";
55
import * as queryString from "querystring";
6+
import * as jwt from "jsonwebtoken";
67

78
import { Netlify } from "./netlify";
89

@@ -72,7 +73,17 @@ export class Server {
7273
isBase64Encoded: isBase64Encoded,
7374
}
7475

75-
lambda.handler(lambdaRequest, {}, Server.lambdaCallback(response));
76+
let lambdaContext: any = {};
77+
78+
if(request.headers["authorization" || "Authorization"]) {
79+
const bearerToken = String(request.headers["authorization" || "Authorization"]).split(" ")[1];
80+
lambdaContext = {
81+
identity: { url: '', token: '' },
82+
user: jwt.decode(bearerToken),
83+
}
84+
}
85+
86+
lambda.handler(lambdaRequest, lambdaContext, Server.lambdaCallback(response));
7687
}
7788
}
7889

‎yarn.lock

+73
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,12 @@
5555
"@types/events" "*"
5656
"@types/node" "*"
5757

58+
"@types/jsonwebtoken@^7.2.8":
59+
version "7.2.8"
60+
resolved "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-7.2.8.tgz#8d199dab4ddb5bba3234f8311b804d2027af2b3a"
61+
dependencies:
62+
"@types/node" "*"
63+
5864
"@types/mime@*":
5965
version "2.0.0"
6066
resolved "https://registry.npmjs.org/@types/mime/-/mime-2.0.0.tgz#5a7306e367c539b9f6543499de8dd519fac37a8b"
@@ -478,6 +484,10 @@ browserify-zlib@^0.2.0:
478484
dependencies:
479485
pako "~1.0.5"
480486

487+
488+
version "1.0.1"
489+
resolved "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819"
490+
481491
buffer-from@^1.0.0:
482492
version "1.1.1"
483493
resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
@@ -852,6 +862,12 @@ duplexify@^3.4.2, duplexify@^3.6.0:
852862
readable-stream "^2.0.0"
853863
stream-shift "^1.0.0"
854864

865+
866+
version "1.0.10"
867+
resolved "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.10.tgz#1c595000f04a8897dfb85000892a0f4c33af86c3"
868+
dependencies:
869+
safe-buffer "^5.0.1"
870+
855871
856872
version "1.1.1"
857873
resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
@@ -1471,6 +1487,35 @@ json5@^0.5.0:
14711487
version "0.5.1"
14721488
resolved "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
14731489

1490+
jsonwebtoken@^8.3.0:
1491+
version "8.3.0"
1492+
resolved "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.3.0.tgz#056c90eee9a65ed6e6c72ddb0a1d325109aaf643"
1493+
dependencies:
1494+
jws "^3.1.5"
1495+
lodash.includes "^4.3.0"
1496+
lodash.isboolean "^3.0.3"
1497+
lodash.isinteger "^4.0.4"
1498+
lodash.isnumber "^3.0.3"
1499+
lodash.isplainobject "^4.0.6"
1500+
lodash.isstring "^4.0.1"
1501+
lodash.once "^4.0.0"
1502+
ms "^2.1.1"
1503+
1504+
jwa@^1.1.5:
1505+
version "1.1.6"
1506+
resolved "https://registry.npmjs.org/jwa/-/jwa-1.1.6.tgz#87240e76c9808dbde18783cf2264ef4929ee50e6"
1507+
dependencies:
1508+
buffer-equal-constant-time "1.0.1"
1509+
ecdsa-sig-formatter "1.0.10"
1510+
safe-buffer "^5.0.1"
1511+
1512+
jws@^3.1.5:
1513+
version "3.1.5"
1514+
resolved "https://registry.npmjs.org/jws/-/jws-3.1.5.tgz#80d12d05b293d1e841e7cb8b4e69e561adcf834f"
1515+
dependencies:
1516+
jwa "^1.1.5"
1517+
safe-buffer "^5.0.1"
1518+
14741519
kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
14751520
version "3.2.2"
14761521
resolved "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
@@ -1520,6 +1565,34 @@ lodash.debounce@^4.0.8:
15201565
version "4.0.8"
15211566
resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
15221567

1568+
lodash.includes@^4.3.0:
1569+
version "4.3.0"
1570+
resolved "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f"
1571+
1572+
lodash.isboolean@^3.0.3:
1573+
version "3.0.3"
1574+
resolved "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6"
1575+
1576+
lodash.isinteger@^4.0.4:
1577+
version "4.0.4"
1578+
resolved "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343"
1579+
1580+
lodash.isnumber@^3.0.3:
1581+
version "3.0.3"
1582+
resolved "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc"
1583+
1584+
lodash.isplainobject@^4.0.6:
1585+
version "4.0.6"
1586+
resolved "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb"
1587+
1588+
lodash.isstring@^4.0.1:
1589+
version "4.0.1"
1590+
resolved "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451"
1591+
1592+
lodash.once@^4.0.0:
1593+
version "4.1.1"
1594+
resolved "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac"
1595+
15231596
lodash@^4.17.10:
15241597
version "4.17.11"
15251598
resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"

0 commit comments

Comments
 (0)