Mercurial > hg > nginx-site
comparison xml/en/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="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="15"> | 12 rev="16"> |
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 |
203 function generate_hs256_jwt(claims, key, valid) { | 203 function generate_hs256_jwt(claims, key, valid) { |
204 var header = { typ: "JWT", alg: "HS256" }; | 204 var header = { typ: "JWT", alg: "HS256" }; |
205 var claims = Object.assign(claims, {exp: Math.floor(Date.now()/1000) + valid}); | 205 var claims = Object.assign(claims, {exp: Math.floor(Date.now()/1000) + valid}); |
206 | 206 |
207 var s = [header, claims].map(JSON.stringify) | 207 var s = [header, claims].map(JSON.stringify) |
208 .map(v=>v.toUTF8()) | |
209 .map(v=>v.toString('base64url')) | 208 .map(v=>v.toString('base64url')) |
210 .join('.'); | 209 .join('.'); |
211 | 210 |
212 var h = require('crypto').createHmac('sha256', key); | 211 var h = require('crypto').createHmac('sha256', key); |
213 | 212 |
214 return s + '.' + h.update(s).digest().toString('base64url'); | 213 return s + '.' + h.update(s).digest('base64url'); |
215 } | 214 } |
216 | 215 |
217 function jwt(r) { | 216 function jwt(r) { |
218 var claims = { | 217 var claims = { |
219 iss: "nginx", | 218 iss: "nginx", |