Перенаправления в GraphQL Мутация / Запрос возможен? Auth0 + GraphQL - PullRequest
0 голосов
/ 01 марта 2020

Для входа через Google (с Auth0) я ранее делал это:

app.get(
  '/login/google',
  passport.authenticate('auth0', { connection: 'google-oauth2' }),
  function(req, res) {
    console.log('REDIRCTING');
    res.redirect('http://localhost:8000/callback');
  }
);

Однако я пытаюсь больше не использовать конечные точки REST, а graphQL. Я не знаю, как бы я go о чем-то подобном, хотя, поскольку в потоке Auth0 пользователь будет перенаправлен в Google, а затем отправит на URL обратного вызова. Как я мог бы интегрировать это с настройкой GraphQL?

Прямо сейчас, без каких-либо перенаправлений и без использования auth0 (просто паспорт. js 'локальная стратегия), это работает:

Определение регистрационной мутации:

login: {
      type: UserType,
      args: {
        email: { type: GraphQLString },
        password: { type: GraphQLString }
      },
      resolve(parentValue, { email, password }, req) {
        return AuthService.login({ email, password, req });
      }
    }
  }

Моя AuthService.login() функция:

function login({ email, password, req }) {
  return new Promise((resolve, reject) => {
    passport.authenticate('local', (err, user) => {
      if (!user) {
        reject('Invalid credentials.');
      }

      req.login(user, () => resolve(user));
    })({ body: { email, password } });
  });
}

Но как мне настроить нечто подобное для graphQL?

...