Mercurial > hg > nginx-site
comparison xml/ru/docs/njs/examples.xml @ 2639:7ad967af16b8
Updated HS JWT example in njs.
author | Yaroslav Zhuravlev <yar@nginx.com> |
---|---|
date | Tue, 19 Jan 2021 12:09:39 +0000 |
parents | c81b1fadbcf3 |
children | 885bcb41fbcf |
comparison
equal
deleted
inserted
replaced
2638:1d775e54f594 | 2639:7ad967af16b8 |
---|---|
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="15"> | 12 rev="16"> |
13 | 13 |
14 <section id="summary"> | 14 <section id="summary"> |
15 | 15 |
16 <para> | 16 <para> |
17 Примеры работают начиная с версии | 17 Примеры работают начиная с версии |
202 function generate_hs256_jwt(claims, key, valid) { | 202 function generate_hs256_jwt(claims, key, valid) { |
203 var header = { typ: "JWT", alg: "HS256" }; | 203 var header = { typ: "JWT", alg: "HS256" }; |
204 var claims = Object.assign(claims, {exp: Math.floor(Date.now()/1000) + valid}); | 204 var claims = Object.assign(claims, {exp: Math.floor(Date.now()/1000) + valid}); |
205 | 205 |
206 var s = [header, claims].map(JSON.stringify) | 206 var s = [header, claims].map(JSON.stringify) |
207 .map(v=>v.toUTF8()) | |
208 .map(v=>v.toString('base64url')) | 207 .map(v=>v.toString('base64url')) |
209 .join('.'); | 208 .join('.'); |
210 | 209 |
211 var h = require('crypto').createHmac('sha256', key); | 210 var h = require('crypto').createHmac('sha256', key); |
212 | 211 |
213 return s + '.' + h.update(s).digest().toString('base64url'); | 212 return s + '.' + h.update(s).digest('base64url'); |
214 } | 213 } |
215 | 214 |
216 function jwt(r) { | 215 function jwt(r) { |
217 var claims = { | 216 var claims = { |
218 iss: "nginx", | 217 iss: "nginx", |