我是Node.js GraphQL阿波罗服务器的新手,并且第一次使用password.js,我需要使用passport.js进行身份验证。如果边框存储在库克中,我的令牌会很痛苦。请这样做7天。谁能向我解释如何使用Apollo-server password.js来完成所有这些工作?
答案 0 :(得分:1)
您的问题在社区内没有得到解答,因为有很多方法可以使用graphQL进行身份验证。这是一个任意例子,可以助您一臂之力。
上下文-在对您的graphQL服务器的每个请求上执行该功能。
const server = new ApolloServer({
context: ({ req }) => {
try {
const authToken = req.header["Auth-token"];
const user = passport.authenticate("local", authToken);
return { user };
} catch (error) {
console.error(error);
return {};
}
}
});
解析器内部提供了从 Context 函数返回的所有内容,作为第三个参数。
const resolvers = {
Query: {
getUserCheese: (root, args, context) => {
return findCheeseByUserName(context.user.name);
}
}
}