Mercurial > hg > nginx-site
comparison xml/ru/docs/njs/examples.xml @ 2519:1cd0abf8f1e5
Updated JWT example in njs.
author | Yaroslav Zhuravlev <yar@nginx.com> |
---|---|
date | Tue, 31 Mar 2020 13:42:53 +0100 |
parents | ba9bfd064a61 |
children | 3ca5edd3ada3 |
comparison
equal
deleted
inserted
replaced
2518:b4f57de67730 | 2519:1cd0abf8f1e5 |
---|---|
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="9"> | 12 rev="10"> |
13 | 13 |
14 <section id="helloword" name="Hello World"> | 14 <section id="helloword" name="Hello World"> |
15 | 15 |
16 <para> | 16 <para> |
17 <path>nginx.conf</path>: | 17 <path>nginx.conf</path>: |
181 </para> | 181 </para> |
182 | 182 |
183 <para> | 183 <para> |
184 <path>hs_jwt.js</path>: | 184 <path>hs_jwt.js</path>: |
185 <example> | 185 <example> |
186 function create_hs256_jwt(claims, key, valid) { | 186 function generate_hs256_jwt(claims, key, valid) { |
187 var header = { "typ" : "JWT", "alg" : "HS256", "exp" : Math.floor(Date.now()/1000) + valid }; | 187 var header = { typ: "JWT", |
188 | 188 alg: "HS256", |
189 var s = JSON.stringify(header).toBytes().toString('base64url') + '.' | 189 exp: Math.floor(Date.now()/1000) + valid }; |
190 + JSON.stringify(claims).toBytes().toString('base64url'); | 190 |
191 var s = [header, claims].map(JSON.stringify) | |
192 .map(v=>v.toBytes()) | |
193 .map(v=>v.toString('base64url')) | |
194 .join('.'); | |
191 | 195 |
192 var h = require('crypto').createHmac('sha256', key); | 196 var h = require('crypto').createHmac('sha256', key); |
193 | 197 |
194 return s + '.' + h.update(s).digest().toString('base64url'); | 198 return s + '.' + h.update(s).digest().toString('base64url'); |
195 } | 199 } |
196 | 200 |
197 function jwt(r) { | 201 function jwt(r) { |
198 var claims = { | 202 var claims = { |
199 "iss" : "nginx", | 203 iss: "nginx", |
200 "sub" : "alice", | 204 sub: "alice", |
201 "foo" : 123, | 205 foo: 123, |
202 "bar" : "qq", | 206 bar: "qq", |
203 "zyx" : false | 207 zyx: false |
204 }; | 208 }; |
205 | 209 |
206 return create_hs256_jwt(claims, 'foo', 600); | 210 return generate_hs256_jwt(claims, 'foo', 600); |
207 } | 211 } |
208 </example> | 212 </example> |
209 </para> | 213 </para> |
210 | 214 |
211 </section> | 215 </section> |