Mercurial > hg > nginx-site
comparison xml/ru/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="Примеры использования" | 9 <article name="Примеры использования" |
10 link="/ru/docs/njs/examples.html" | 10 link="/ru/docs/njs/examples.html" |
11 lang="ru" | 11 lang="ru" |
12 rev="16"> | 12 rev="17"> |
13 | 13 |
14 <section id="summary"> | 14 <section id="summary"> |
15 | 15 |
16 <para> | 16 <para> |
17 Примеры работают начиная с версии | 17 Примеры работают начиная с версии |
223 | 223 |
224 return generate_hs256_jwt(claims, 'foo', 600); | 224 return generate_hs256_jwt(claims, 'foo', 600); |
225 } | 225 } |
226 | 226 |
227 export default {jwt}; | 227 export default {jwt}; |
228 </example> | |
229 </para> | |
230 | |
231 </section> | |
232 | |
233 | |
234 <section id="jwt_field" name="Получение произвольного поля JWT | |
235 как значение переменной nginx"> | |
236 | |
237 <para> | |
238 <path>nginx.conf</path>: | |
239 <example> | |
240 js_import http.js; | |
241 | |
242 js_set $jwt_payload_sub main.jwt_payload_sub; | |
243 | |
244 server { | |
245 ... | |
246 | |
247 location /jwt { | |
248 return 200 $jwt_payload_sub; | |
249 } | |
250 } | |
251 </example> | |
252 </para> | |
253 | |
254 <para> | |
255 <path>http.js</path>: | |
256 <example> | |
257 function jwt(data) { | |
258 var parts = data.split('.').slice(0,2) | |
259 .map(v=>Buffer.from(v, 'base64url').toString()) | |
260 .map(JSON.parse); | |
261 return { headers:parts[0], payload: parts[1] }; | |
262 } | |
263 | |
264 function jwt_payload_sub(r) { | |
265 return jwt(r.headersIn.Authorization.slice(7)).payload.sub; | |
266 } | |
267 | |
268 export default {jwt_payload_sub} | |
228 </example> | 269 </example> |
229 </para> | 270 </para> |
230 | 271 |
231 </section> | 272 </section> |
232 | 273 |