Я использую сервер graphql-yoga, Express, Node.js, клиент Prisma и сервер Prisma.И пытаться сделать пост-мутацию на сервере GraphQL, используя площадку GraphQL.Тем не менее, я получаю постоянную ошибку «недопустимый токен», которая, кажется, выходит из моей вспомогательной функции getUSerId
, которая вызывается для большинства функций распознавания полей Mutation.
Вот фрагмент кода ошибки
{
"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
}
}