我正在使用graphql-yoga服务器,Express,Node.js,Prisma客户端和Prisma服务器。并尝试使用GraphQL游乐场对GraphQL服务器进行后期修改。但是,我遇到了一个永久性错误“无效令牌”,该错误似乎与我在大多数Mutation字段解析器函数上调用的getUSerId
帮助函数有关。
这是该错误的代码段
{
"data": null,
"errors": [
{
"message": "invalid token",
"locations": [
{
"line": 2,
"column": 3
}
],
"path": [
"post"
]
}
]
}
这是utils.js中我的解析器函数的代码
const jwt = require("jsonwebtoken");
const APP_SECRET = "GraphQL-is-aw3some";
function getUserId(context) {
const Authorization = context.request.get("Authorization");
if (Authorization) {
const token = Authorization.replace("Bearer", "");
const { userId } = jwt.verify(token, APP_SECRET);
return userId;
}
throw new Error("Not Authenticated");
}
module.exports = {
APP_SECRET,
getUserId
};
这是我的帖子解析器功能的代码
function post(parent, args, context, info) {
const userId = getUserId(context);
return context.prisma.createLink({
url: args.url,
description: args.description,
postedBy: { connect: { id: userId } }
});
}
这是我在操场上的突变
mutation{
post(
description: "Prisma repalces traditional ORMs"
url: "www.prisma.io"
){
id
}
}