Mercurial > hg > nginx-site
comparison xml/en/docs/njs/examples.xml @ 2640:885bcb41fbcf
Added an example to njs examples.
author | Yaroslav Zhuravlev <yar@nginx.com> |
---|---|
date | Tue, 19 Jan 2021 12:40:34 +0000 |
parents | 7ad967af16b8 |
children | c60bcc0de435 |
comparison
equal
deleted
inserted
replaced
2639:7ad967af16b8 | 2640:885bcb41fbcf |
---|---|
7 <!DOCTYPE article SYSTEM "../../../../dtd/article.dtd"> | 7 <!DOCTYPE article SYSTEM "../../../../dtd/article.dtd"> |
8 | 8 |
9 <article name="Examples" | 9 <article name="Examples" |
10 link="/en/docs/njs/examples.html" | 10 link="/en/docs/njs/examples.html" |
11 lang="en" | 11 lang="en" |
12 rev="16"> | 12 rev="17"> |
13 | 13 |
14 <section id="summary"> | 14 <section id="summary"> |
15 | 15 |
16 <para> | 16 <para> |
17 The examples work since | 17 The examples work since |
224 | 224 |
225 return generate_hs256_jwt(claims, 'foo', 600); | 225 return generate_hs256_jwt(claims, 'foo', 600); |
226 } | 226 } |
227 | 227 |
228 export default {jwt}; | 228 export default {jwt}; |
229 </example> | |
230 </para> | |
231 | |
232 </section> | |
233 | |
234 | |
235 <section id="jwt_field" name="Getting Arbitrary Field from JWT | |
236 as nginx Variable"> | |
237 | |
238 <para> | |
239 <path>nginx.conf</path>: | |
240 <example> | |
241 js_import http.js; | |
242 | |
243 js_set $jwt_payload_sub main.jwt_payload_sub; | |
244 | |
245 server { | |
246 ... | |
247 | |
248 location /jwt { | |
249 return 200 $jwt_payload_sub; | |
250 } | |
251 } | |
252 </example> | |
253 </para> | |
254 | |
255 <para> | |
256 <path>http.js</path>: | |
257 <example> | |
258 function jwt(data) { | |
259 var parts = data.split('.').slice(0,2) | |
260 .map(v=>Buffer.from(v, 'base64url').toString()) | |
261 .map(JSON.parse); | |
262 return { headers:parts[0], payload: parts[1] }; | |
263 } | |
264 | |
265 function jwt_payload_sub(r) { | |
266 return jwt(r.headersIn.Authorization.slice(7)).payload.sub; | |
267 } | |
268 | |
269 export default {jwt_payload_sub} | |
229 </example> | 270 </example> |
230 </para> | 271 </para> |
231 | 272 |
232 </section> | 273 </section> |
233 | 274 |