Javascript JWT sha256散列不';不匹配的互联网草案的例子

Javascript JWT sha256散列不';不匹配的互联网草案的例子,javascript,json,google-apps-script,jwt,Javascript,Json,Google Apps Script,Jwt,我一直在努力让JWT在谷歌应用程序脚本中工作。因为我的成绩不好,所以我去了JWS互联网选秀网站: eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ 使用此示例对象: {“iss”:“乔”, “经验”:1300819380, “”:true} eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6L

我一直在努力让JWT在谷歌应用程序脚本中工作。因为我的成绩不好,所以我去了JWS互联网选秀网站:

eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ
使用此示例对象: {“iss”:“乔”, “经验”:1300819380, “”:true}

eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ
代码片段:

var eClaim = UTF8.encode(JSON.stringify(claim));
eClaim = Base64EncodeUrl(eClaim);
eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ
我的Base64url是:

eyJpc3MiOiJqb2UiL----CJleHAiOjEzMDA4MTkzODAs----Imh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ
eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ
(-由我补充)

eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ
说明书上说我应该得到什么:

eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ

我的编码对象中有间隙(我再次添加----以显示间隙)。我认为这可能是一个\n、\r或\t,但没有一个符合预期结果。我确实将示例粘贴到了在线base64url编码器/解码器中。我的base64解码完美,示例JSON编码与我的完全相同。是我做错了什么,还是internet草稿不正确?

您说您尝试了\r\n,但这是我解码后确定的
eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ
你的样品

eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ
不同之处在于示例版本中的换行符CRLF

eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ
他们的:

eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ
0000000  7b  22  69  73  73  22  3a  22  6a  6f  65  22  2c  0d  0a  20
          {   "   i   s   s   "   :   "   j   o   e   "   ,  cr  nl  sp
0000020  22  65  78  70  22  3a  31  33  30  30  38  31  39  33  38  30
          "   e   x   p   "   :   1   3   0   0   8   1   9   3   8   0
0000040  2c  0d  0a  20  22  68  74  74  70  3a  2f  2f  65  78  61  6d
          ,  cr  nl  sp   "   h   t   t   p   :   /   /   e   x   a   m
0000060  70  6c  65  2e  63  6f  6d  2f  69  73  5f  72  6f  6f  74  22
          p   l   e   .   c   o   m   /   i   s   _   r   o   o   t   "
0000100  3a  74  72  75  65  7d
          :   t   r   u   e   }
0000106
你的:

eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ
0000000  7b  22  69  73  73  22  3a  22  6a  6f  65  22  2c  22  65  78
          {   "   i   s   s   "   :   "   j   o   e   "   ,   "   e   x
0000020  70  22  3a  31  33  30  30  38  31  39  33  38  30  2c  22  68
          p   "   :   1   3   0   0   8   1   9   3   8   0   ,   "   h
0000040  74  74  70  3a  2f  2f  65  78  61  6d  70  6c  65  2e  63  6f
          t   t   p   :   /   /   e   x   a   m   p   l   e   .   c   o
0000060  6d  2f  69  73  5f  72  6f  6f  74  22  3a  74  72  75  65  7d
          m   /   i   s   _   r   o   o   t   "   :   t   r   u   e   }
0000100

据我所知,JSON不需要在分隔符逗号后加换行符。

没错,规范中的所有示例都包含换行符。这些例子一点也不错误。
eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ