我开始使用Kong。我成功地使用Oauth2插件创建了一个简单的身份验证系统,但现在我对JWT插件有一些麻烦。
我搜索了很多但是缺乏关于这个主题的文档和资源。
我按照指南进行了操作:https://getkong.org/plugins/jwt/
我使用他的JWT凭据创建了一个消费者:
{
"secret": "6b965bcbf48a4ea7a170bf56557e14c1",
"id": "5587b664-c8b5-4941-95fe-f6e03c319fa4",
"algorithm": "HS256",
"created_at": 1500473323000,
"key": "6fad7730b5134fbb9d74d356d838c9b4",
"consumer_id": "459cc6ab-fd62-4510-80cc-4eb48e5326a3"
}
然后我打开了https://jwt.io/和许多其他工具来生成密钥。无论如何我输入的数据是:
标题
{
"typ": "JWT",
"alg": "HS256"
}
有效载荷
{
"iss": "6fad7730b5134fbb9d74d356d838c9b4"
}
验证签名
HMACSHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
6b965bcbf48a4ea7a170bf56557e14c1
)
该工具返回一个我用作授权标题的密钥:
Authorization: Bearer <token>
不幸的是,服务器的响应始终是401:
{
"error_description": "The access token is invalid or has expired",
"error": "invalid_token"
}
如果我发送损坏的令牌或从错误数据生成的令牌,我会收到不同的错误消息。
我在这里做错了什么?
答案 0 :(得分:1)
解决。
基本上在同一个API上做了更多测试,我应用了两个插件(Oauth2和JWT),然后创建冲突。
正如我所说,我刚刚开始,所以对于新手来说,请注意不要在同一个API上使用更多的身份验证插件。