孔JWT无效签名

孔JWT无效签名,jwt,kong,Jwt,Kong,我在web应用程序中使用API获取数据和显示。我需要在访问数据库之前对API进行身份验证/授权,因此我使用Kong API Gateway对请求(API)进行身份验证/授权。我尝试在Kong中创建jwt插件,但在使用jwt验证请求时获得无效签名 如何修复无效签名错误?我正在Linux服务器中使用Kong 0.10.3(我没有使用docker或AWS) 代码: 以下是我遵循的步骤: Step 1.Created Kong API Route: curl -X POST http://localho

我在web应用程序中使用API获取数据和显示。我需要在访问数据库之前对API进行身份验证/授权,因此我使用Kong API Gateway对请求(API)进行身份验证/授权。我尝试在Kong中创建jwt插件,但在使用jwt验证请求时获得无效签名

如何修复无效签名错误?我正在Linux服务器中使用Kong 0.10.3(我没有使用docker或AWS)

代码: 以下是我遵循的步骤:

Step 1.Created Kong API Route:
curl -X POST http://localhost:8001/apis/ \
   --data "name=Abc" \
   --data "uris=/API" \
   --data "upstream_url=http://*.*.*.*:1212" \
   --data "strip_uri=false"

Step 2.Created plugin
curl -X POST http://localhost:8001/apis/ABC/plugins \
    --data "name=jwt" 

Step 3.Created Consumer
curl -X POST http://localhost:8001/consumers \
    --data "username=xyz" 

Step 4.Created JWT credentials
curl -X POST http://localhost:8001/consumers/xyz/jwt -H "Content-Type: application/x-www-form-urlencoded"

Step 5.Send a request with the JWT(Using the JWT debugger at https://jwt.io)

curl http://localhost:8000/API/ABC?user=1 \
    -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiI4OTg2MTgwZTQ0ZGQ0ODBmOGU5YzBlODQ3OTQyNDk1YSJ9.sIquZPSmkU8t9RVC8PSBqB8hbs2Th0IIOgphp2iWn2E'

{"message":"Invalid signature"}

您是否已将
iss
添加到JWT令牌负载中,如中所述

其次,声明必须在配置的声明中包含机密的密钥(来自config.key\u claim\u name)。默认情况下,该声明是iss(颁发者字段)。将其值设置为以前创建的凭据密钥。权利要求可能包含其他值


有两种可能。 1) 令牌无效,即未正确生成。 2) 令牌有效,但未使用正确的验证密钥验证buttoken

第1点的提示 另外,当我在中解密令牌时,我看到头是空的

第2点的提示
在创建JWT凭据时,您需要提供额外的信息,如JWT算法、令牌验证密钥。第4步。

我遇到了一个类似的问题,我在一个java应用程序中生成了JSON Web令牌,其机密与kong消费者相同,并将“iss”放在声明中,但kong仍然给了我无效的签名消息


在对生成令牌进行了一些测试之后,我注意到java应用程序正在生成带有base64编码的密钥的令牌,而kong正在等待该密钥不被编码,因此添加config.secret_is_base64=true to jwt plugin解决了我的问题。

即使在使用iss(这是消费者的密钥)时,我也会遇到同样的错误. 我的jwt是EYJHBGCIOIJIUZI1NIISINR5CCIKPXVCJ9.EYJPC3MIOIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ。这是我用来签署jwt rjrLDRC980cbjcGD8plbsIa2xzwpwsJZ的秘密。我用计算机检查签名的有效性。
{ 
  "iss": "a36c3049b36249a3c9f8891cb127243c"
}