Почему в игровой площадке / среде IDE GraphQL появляется ошибка «неверный токен»? - PullRequest
0 голосов
/ 31 января 2019

Я использую сервер 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
  }
}
...