UNPKG

6.61 kBMarkdownView Raw
1# [@lykmapipo/jwt-common](https://github.com/lykmapipo/jwt-common) *0.4.1*
2
3> Helper utilities for day to day jwt usage.
4
5
6### lib/index.js
7
8
9#### withDefaults([optns])
10
11merge provided options with defaults
12
13
14
15
16##### Parameters
17
18| Name | Type | Description | |
19| ---- | ---- | ----------- | -------- |
20| optns | `Object` | provided options | *Optional* |
21
22
23
24
25##### Examples
26
27```javascript
28
29const { withDefaults } = require('@lykmapipo/jwt-common');
30withDefaults({ secret: 'xo67Rw' }) // => { secret: 'xo67Rw', ...}
31```
32
33
34##### Returns
35
36
37- `Object` merged options with environment variables
38
39
40
41#### encode(payload[, opts], cb)
42
43encode given payload as jwt.
44
45
46
47
48##### Parameters
49
50| Name | Type | Description | |
51| ---- | ---- | ----------- | -------- |
52| payload | `Object` | data to encode. |   |
53| opts | `Object` | jwt sign or encoding options. | *Optional* |
54| cb | `Function` | callback to invoke on success or failure. |   |
55
56
57
58
59##### Examples
60
61```javascript
62
63const { encode } = require('@lykmapipo/jwt-common');
64
65const payload = { _id: 'xo5', permissions: ['user:read'] };
66
67// encode with default options
68encode(payload, (error, jwt) => { ... });
69
70// encode with merged options
71encode(payload, { secret: 'xo67Rw' }, (error, jwt) => { ... });
72```
73
74
75##### Returns
76
77
78- `String` `Error` jwt token if success or error.
79
80
81
82#### decode(token[, opts], cb)
83
84decode and verify given jwt.
85
86
87
88
89##### Parameters
90
91| Name | Type | Description | |
92| ---- | ---- | ----------- | -------- |
93| token | `String` | jwt token to decode. |   |
94| opts | `Object` | jwt verify or decoding options. | *Optional* |
95| cb | `Function` | callback to invoke on success or failure. |   |
96
97
98
99
100##### Examples
101
102```javascript
103
104const { decode } = require('@lykmapipo/jwt-common');
105
106const token = 'eyJhbGciOiJIUz...';
107
108// decode with default options
109decode(token, (error, payload) => { ... });
110
111// decode with provided options
112decode(token, { secret: 'xo67Rw' }, (error, payload) => { ... });
113```
114
115
116##### Returns
117
118
119- `Payload` `Error` payload if success or error.
120
121
122
123#### refresh(token, payload[, opts], cb)
124
125decode a given jwt, if expired return new jwt.
126
127
128
129
130##### Parameters
131
132| Name | Type | Description | |
133| ---- | ---- | ----------- | -------- |
134| token | `String` | jwt token to refresh. |   |
135| payload | `Object` | data to encode. |   |
136| opts | `Object` | jwt verify or decoding options. | *Optional* |
137| cb | `Function` | callback to invoke on success or failure. |   |
138
139
140
141
142##### Examples
143
144```javascript
145
146const { refresh } = require('@lykmapipo/jwt-common');
147
148const token = 'eyJhbGciOiJIUz...';
149const payload = { _id: 'xo5', permissions: ['user:read'] };
150
151// refresh with default options
152refresh(token, payload, (error, jwt) => { ... });
153
154// refresh with provided options
155refresh(token, payload, { secret: 'xo67Rw' }, (error, jwt) => { ... });
156```
157
158
159##### Returns
160
161
162- `String` `Error` jwt token if success or error.
163
164
165
166#### isExpired(token[, opts, cb])
167
168check if jwt expired without verifying if the signature is valid.
169
170
171
172
173##### Parameters
174
175| Name | Type | Description | |
176| ---- | ---- | ----------- | -------- |
177| token | `String` | jwt token to check for expiry. |   |
178| opts | `Object` | jwt verify or decoding options. | *Optional* |
179| cb | `Function` | callback to invoke on success or failure. | *Optional* |
180
181
182
183
184##### Examples
185
186```javascript
187
188const { isExpired } = require('@lykmapipo/jwt-common');
189
190const token = 'eyJhbGciOiJIUz...';
191
192// isExpired with default options
193isExpired(token); //=> false
194
195// isExpired with provided options
196const optns = { clockTimestamp : Math.floor(Date.now() / 1000) }
197isExpired(token, optns); //=> true
198```
199
200
201##### Returns
202
203
204- `Boolean` whether jwt expired.
205
206
207
208#### decodeJwtToUser([opts]) *private method*
209
210return a function used to decode jwt to user.
211
212
213
214
215##### Parameters
216
217| Name | Type | Description | |
218| ---- | ---- | ----------- | -------- |
219| opts | `Object` | decoding options. | *Optional* |
220| opts.user | `Functon` | | *Optional* |
221
222
223
224
225##### Returns
226
227
228- `Function` jwt to user decoder
229
230
231
232#### parseJwtFromHttpHeaders(done)
233
234parse request headers to get jwt.
235
236
237
238
239##### Parameters
240
241| Name | Type | Description | |
242| ---- | ---- | ----------- | -------- |
243| done | `Function` | callback to invoke on success or failure. |   |
244
245
246
247
248##### Examples
249
250```javascript
251
252const { parseJwtFromHttpHeaders } = require('@lykmapipo/jwt-common');
253parseJwtFromHttpHeaders(request, (error, jwt) => { ... });
254```
255
256
257##### Returns
258
259
260- `Payload` `Error` jwt if success or error.
261
262
263
264#### parseJwtFromHttpQueryParams(done)
265
266parse request headers to get jwt.
267
268
269
270
271##### Parameters
272
273| Name | Type | Description | |
274| ---- | ---- | ----------- | -------- |
275| done | `Function` | callback to invoke on success or failure. |   |
276
277
278
279
280##### Examples
281
282```javascript
283
284const { parseJwtFromHttpQueryParams } = require('@lykmapipo/jwt-common');
285parseJwtFromHttpQueryParams(request, (error, jwt) => { ... });
286```
287
288
289##### Returns
290
291
292- `Payload` `Error` jwt if success or error.
293
294
295
296#### parseJwtFromHttpRequest(done)
297
298parse request headers to get jwt.
299
300
301
302
303##### Parameters
304
305| Name | Type | Description | |
306| ---- | ---- | ----------- | -------- |
307| done | `Function` | callback to invoke on success or failure. |   |
308
309
310
311
312##### Examples
313
314```javascript
315
316const { parseJwtFromHttpRequest } = require('@lykmapipo/jwt-common');
317parseJwtFromHttpRequest(request, (error, jwt) => { ... });
318```
319
320
321##### Returns
322
323
324- `Payload` `Error` jwt if success or error.
325
326
327
328#### jwtAuth([opts])
329
330create middlware to authorize request using jwt
331
332
333
334
335##### Parameters
336
337| Name | Type | Description | |
338| ---- | ---- | ----------- | -------- |
339| opts | `Object` | jwt verify or decoding options. | *Optional* |
340
341
342
343
344##### Examples
345
346```javascript
347
348const { jwtAuth } = require('@lykmapipo/jwt-common');
349
350app.get('/users', jwtAuth({ secret: 'xo67Rw' }), (req, res, next) => { ... });
351```
352
353
354##### Returns
355
356
357- `Function` express compactoble middleware.
358
359
360
361#### jwtPermit(requiredScopes)
362
363create middlware to check request for jwt permissions(or scopes).
364
365
366
367
368##### Parameters
369
370| Name | Type | Description | |
371| ---- | ---- | ----------- | -------- |
372| requiredScopes | `Array.<String>` `String` | required scopes or permissions. | &nbsp; |
373
374
375
376
377##### Examples
378
379```javascript
380
381const { jwtPermit } = require('@lykmapipo/jwt-common');
382
383app.get('/users', jwtPermit('user:read'), (req, res, next) => { ... });
384```
385
386
387##### Returns
388
389
390- `Function` express compactoble middleware.
391
392
393
394
395*Documentation generated with [doxdox](https://github.com/neogeek/doxdox).*