我开始接触孔了。我用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 header:
Authorization: Bearer <token>不幸的是,来自服务器的响应总是401:
{
"error_description": "The access token is invalid or has expired",
"error": "invalid_token"
}如果我发送损坏的令牌或从错误数据生成的令牌,我会收到不同的错误消息。
我在这里做错了什么?
发布于 2017-07-20 23:58:16
解决了。
基本上,我在同一个应用程序接口上做了更多的测试,我应用了两个插件(Oauth2和JWT),然后造成了冲突。
正如我所说的,我才刚刚开始,所以对于新手来说,请注意不要在同一个API上使用更多的身份验证插件。
https://stackoverflow.com/questions/45193875
复制相似问题