#node.js #angular #express #passport-local #passport-google-oauth2
#node.js #angular #экспресс #паспорт-локальный #паспорт-google-oauth2
Вопрос:
Я создаю веб-приложение, которое используется поверх архитектуры микросервисов.
Используя node / express js, я внедрил службу аутентификации и службу продуктов, которые прослушивают разные порты, такие как
http://localhost:8001 для службы аутентификации http://localhost:8002 для обслуживания продуктов.
Шлюз Kong используется для аутентификации и подключения микросервисов к jwt. Реализована стратегия passport-jwt и passport-local для аутентификации пользователей со стороны клиента с использованием вызовов post.
Наконец, я реализовал аутентификацию Google на стороне сервера, используя стратегию passport-Google в приведенном ниже URL
http://localhost:8001/auth/google -> он направляет меня к экрану авторизации Google после входа в систему, который перенаправляет на указанный ниже URL
http://localhost:8001/auth/google/callback с помощью токена. он отлично работает на стороне сервера.
async googlecallback(req, res, next){
passport.authenticate('google', {
session: false,
}, (err, user, message) => {
if (!user) {
return next(new UnAuthorizedException(message))
}
const token = user.generateToken()
user = UserTransformer.transform(user)
user.token = token
this.Response(res, user, message) // sending response to client using custom method
})(req, res)
}
. Когда я прихожу для аутентификации пользователя со стороны клиента angular app. Я не могу продолжить. просто борюсь здесь. 🙁
Как я могу аутентифицировать пользователя, когда он нажимает кнопку входа в Google в angular 10 на стороне клиента?
Мой URL-адрес приложения, например http://localhost:4002/account/login
Пытался использовать window.open («http://localhost:8001/auth/google «,»_blank») метод, работающий не так, как ожидалось.
res.setHeader(‘x-code’, ‘jwthere’); метод заголовка. Также пытался передать токен JWT с параметром URL. но оба кажутся небезопасными.
http://localhost:4002/account/login ?токен = 7wF8bit5W1Pfi5Glt1X8H0YQu8BN7OeNRcX1zbj3AGpUHaYSxLlNIjHpzuw
безопасность здесь является основной проблемой. Я хочу, чтобы Google входил в систему, как социальный вход в khanacademy