Для входа через 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?