Apollo服务器password.js身份验证

时间:2019-11-23 20:15:39

标签: node.js graphql apollo-server

我是Node.js GraphQL阿波罗服务器的新手,并且第一次使用password.js,我需要使用passport.js进行身份验证。如果边框存储在库克中,我的令牌会很痛苦。请这样做7天。谁能向我解释如何使用Apollo-server password.js来完成所有这些工作?

1 个答案:

答案 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);
        }
    }
}