首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RS256加密的JWT toaken出现PostGraphile "invalid algorithm“错误

RS256加密的JWT toaken出现PostGraphile "invalid algorithm“错误
EN

Stack Overflow用户
提问于 2020-04-29 06:40:02
回答 1查看 233关注 0票数 2

我在一个节点项目中使用了PostGraphile 4.6.0的JWT验证。下面是代码片段:

代码语言:javascript
复制
createServer(
postgraphile(env.DATABASE_URL, "public", {
  jwtVerifyAlgorithms: ["RS256"],
  jwtSecret: "./publickey.pem",
  jwtPgTypeIdentifier: "public.jwt_token",
  rejectUnauthorized: false,
  graphiql: true,
  enhanceGraphiql: true,
  graphqlRoute: env.POSTGRAPHILE_ROUTE + "/graphql",
  graphiqlRoute: env.POSTGRAPHILE_ROUTE + "/graphiql",
})).listen(port, () => {
console.log("Listening at port:" + port);});

但是当我使用Postman发送RS256加密的JWT令牌时,得到错误:

代码语言:javascript
复制
{
"errors": [
    {
        "message": "invalid algorithm"
    }
]

}

我在Postgres中创建了一个函数来返回JWT令牌,它总是返回HS256加密的JWT令牌。我在Postman中使用了PostGraphile返回的HS256加密的JWT令牌,验证了JWT令牌,并且GrqphQL查询返回了正确的结果。

选项"jwtVerifyAlgorithms“似乎没有生效。

有没有办法对RS256加密的JWT令牌起作用?

EN

回答 1

Stack Overflow用户

发布于 2020-12-07 01:37:24

Postgraphile documentation声明jwtPublicKey是用于提供密钥的正确设置。现在,您正在使用带有字符串"./publickey.pem"jwtSecret,它不会加载文件,而是使用文件路径作为密码。确保使用类似以下内容自己加载该文件:

代码语言:javascript
复制
...
jwtPublicKey: fs.readFileSync("./secretkey.pem", "ascii")
...

通过pgSettings的替代方案

最坏的情况您还可以提供一个使用jsonwebtoken npm库的自定义pgSettings函数,自己验证令牌并将其写入您的设置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61491193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档