changeset 2519:1cd0abf8f1e5

Updated JWT example in njs.
author Yaroslav Zhuravlev <yar@nginx.com>
date Tue, 31 Mar 2020 13:42:53 +0100
parents b4f57de67730
children 3ca5edd3ada3
files xml/en/docs/njs/examples.xml xml/ru/docs/njs/examples.xml
diffstat 2 files changed, 30 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- a/xml/en/docs/njs/examples.xml
+++ b/xml/en/docs/njs/examples.xml
@@ -9,7 +9,7 @@
 <article name="Examples"
         link="/en/docs/njs/examples.html"
         lang="en"
-        rev="9">
+        rev="10">
 
 <section id="helloword" name="Hello World">
 
@@ -183,11 +183,15 @@ js_set $jwt jwt;
 <para>
 <path>hs_jwt.js</path>:
 <example>
-function create_hs256_jwt(claims, key, valid) {
-    var header = { "typ" : "JWT", "alg" : "HS256", "exp" : Math.floor(Date.now()/1000) + valid };
+function generate_hs256_jwt(claims, key, valid) {
+    var header = { typ: "JWT",
+                   alg: "HS256",
+                   exp: Math.floor(Date.now()/1000) + valid };
 
-    var s = JSON.stringify(header).toBytes().toString('base64url') + '.'
-            + JSON.stringify(claims).toBytes().toString('base64url');
+    var s = [header, claims].map(JSON.stringify)
+                            .map(v=>v.toBytes())
+                            .map(v=>v.toString('base64url'))
+                            .join('.');
 
     var h = require('crypto').createHmac('sha256', key);
 
@@ -196,14 +200,14 @@ function create_hs256_jwt(claims, key, v
 
 function jwt(r) {
     var claims = {
-        "iss" : "nginx",
-        "sub" : "alice",
-        "foo" : 123,
-        "bar" : "qq",
-        "zyx" : false
+        iss: "nginx",
+        sub: "alice",
+        foo: 123,
+        bar: "qq",
+        zyx: false
     };
 
-    return create_hs256_jwt(claims, 'foo', 600);
+    return generate_hs256_jwt(claims, 'foo', 600);
 }
 </example>
 </para>
--- a/xml/ru/docs/njs/examples.xml
+++ b/xml/ru/docs/njs/examples.xml
@@ -9,7 +9,7 @@
 <article name="Примеры использования"
         link="/ru/docs/njs/examples.html"
         lang="ru"
-        rev="9">
+        rev="10">
 
 <section id="helloword" name="Hello World">
 
@@ -183,11 +183,15 @@ js_set $jwt jwt;
 <para>
 <path>hs_jwt.js</path>:
 <example>
-function create_hs256_jwt(claims, key, valid) {
-    var header = { "typ" : "JWT", "alg" : "HS256", "exp" : Math.floor(Date.now()/1000) + valid };
+function generate_hs256_jwt(claims, key, valid) {
+    var header = { typ: "JWT",
+                   alg: "HS256",
+                   exp: Math.floor(Date.now()/1000) + valid };
 
-    var s = JSON.stringify(header).toBytes().toString('base64url') + '.'
-            + JSON.stringify(claims).toBytes().toString('base64url');
+    var s = [header, claims].map(JSON.stringify)
+                            .map(v=>v.toBytes())
+                            .map(v=>v.toString('base64url'))
+                            .join('.');
 
     var h = require('crypto').createHmac('sha256', key);
 
@@ -196,14 +200,14 @@ function create_hs256_jwt(claims, key, v
 
 function jwt(r) {
     var claims = {
-        "iss" : "nginx",
-        "sub" : "alice",
-        "foo" : 123,
-        "bar" : "qq",
-        "zyx" : false
+        iss: "nginx",
+        sub: "alice",
+        foo: 123,
+        bar: "qq",
+        zyx: false
     };
 
-    return create_hs256_jwt(claims, 'foo', 600);
+    return generate_hs256_jwt(claims, 'foo', 600);
 }
 </example>
 </para>