Я пытаюсь внедрить логин Google в свое приложение и столкнулся с неприятной проблемой.
У меня запущено приложение реагирования на порт 3000, а на моем экспресс-сервере - порт 5000. Я также использую паспорт для аутентификации пользователей.
Когда я пытаюсь войти в систему через Google, и я нажимаю на маршрут ниже, я получаю сообщение об ошибке
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access.
Из того, что я прочитал, я должен установить CORS на экспресс-сервере (что я и сделал с помощью библиотеки cors). Даже при этом я все еще получаю эту ошибку.
Ниже приведен код:
ПАСПОРТ:
module.exports = passport => {
passport.use(
new GoogleStrategy(
{
clientID: keys.googleClient,
clientSecret: keys.googleSecret,
callbackURL: "/auth/google/callback"
},
(token, refreshToken, profile, done) => {
return done(null, {
profile: profile,
token: token
});
}
)
);
ROUTE:
router.post(
"/auth/google",
passport.authenticate("google", {
session: false,
scope: ["profile"]
}),
(req, res) => {
if (!req.token) {
return res
.status(401)
.json("Not authorized");
} else {
console.log(req.token);
}
}
);
Чтобы включить CORS, я только включил библиотеку cors и использовал ее вместе с express:
//enables cors
app.use(cors());
Может быть, я неправильно понял всю эту вещь CORS. Как мне подойти к этому?