我正在使用 MERN 编写一个全栈应用程序,我需要使用 JWT 令牌提供身份验证。我的代码如下所示:
router.use(GraphQLHTTP(
(req: Request, res: Response): Promise<any> => {
return new Promise((resolve, reject) => {
const next = (user: IUser, info = {}) => {
/**
* GraphQL configuration goes here
*/
resolve({
schema,
graphiql: config.get("isDev"), // <- only enable GraphiQL in production
pretty: config.get("isDev"),
context: {
user: user || null,
},
});
};
/**
* Try to authenticate using passport,
* but never block the call from here.
*/
passport.authenticate(['access'], { session: false }, (err, loginOptions) => {
next(loginOptions);
})(req, res, next);
})
}));
我想通过 GraphQL 提供新一代令牌。为此,我需要检查用户是否使用了正确的身份验证方法。例如,要获取新的访问令牌,您需要刷新令牌,您需要使用刷新令牌的密码和电子邮件登录。但是使用护照意味着在身份验证后我将只拥有一个用户。
我应该如何进行?