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",