Node.js Passport(oAuth2)如何使用GraphQL(TypeGraphQL)?

Node.js Passport(oAuth2)如何使用GraphQL(TypeGraphQL)?,node.js,passport.js,next.js,graphql-js,Node.js,Passport.js,Next.js,Graphql Js,我正在尝试使用谷歌的策略 我的目标是让用户只通过Google登录进行身份验证,从而访问React Next.js应用程序的受限区域。这是基于他们电子邮件的扩展名为@SpecificDomain.com 我在前端有一个组件,它打开一个Google登录窗口并返回带有访问令牌的对象。据我所知,然后我将把这个对象转发到我自己的后端(Apollo服务器,TypeGraphQL配置) 我的Apollo服务器实例如下所示: onst apolloServer = new ApolloServer({ sche

我正在尝试使用谷歌的策略

我的目标是让用户只通过Google登录进行身份验证,从而访问React Next.js应用程序的受限区域。这是基于他们电子邮件的扩展名为@SpecificDomain.com

我在前端有一个组件,它打开一个Google登录窗口并返回带有访问令牌的对象。据我所知,然后我将把这个对象转发到我自己的后端(Apollo服务器,TypeGraphQL配置)

我的Apollo服务器实例如下所示:

onst apolloServer = new ApolloServer({ schema,
context: async ({ req}) => {
    let token = null;
    let currentUser = null;

    try{
      token = req.headers.authorization;

      if(token){
        currentUser = await authenticate(token);
      }
    } catch (error) {
      console.warn(`Unable to authenticate using auth token: ${token}`);
    }

    return {
      currentUser,
      token
    }



} }) as any;
在上下文中,我试图通过将令牌发送到另一个组件来验证用户访问令牌,在该组件中,我试图使用Passport,它使用Google oauth2策略来验证用户

然而,我在网上看到的所有示例都使用Express中间件。我想知道是否有任何方法可以只用GraphQL来实现它

我不明白我该怎么称呼这个:

    passport.use(new GoogleStrategy({
  clientID: googleCredentials.CLIENT_ID,
  clientSecret: googleCredentials.CLIENT_SECRET,
  callbackURL: googleCredentials.redirect_uris[0]
},
function(accessToken : string, cb : any, refreshToken? : string, profile? : string) {
  const userOject = {accessToken, refreshToken, profile};
  return cb(null, userOject);
}
));
我如何将代币传递到这个

我也试过了

   export default function authenticateUser(token : string) {
  passport.authenticate('oauth2');

}
但是passport.authenticate没有任何令牌参数

有人能给我指点路吗


感谢您抽出时间。

决定使用Express处理身份验证