Как исправить CORS 'Access-Control-Allow-Origin', отсутствующий в React -> Express -> Passport - PullRequest
0 голосов
/ 19 сентября 2019

Я пытаюсь создать приложение, используя React и Express, этому приложению требуется логин, для которого я пытаюсь использовать steam.

Для входа в steam я использую passportjs в express и пытаюсьиспользовать axios для выполнения запроса get на мой внутренний сервер, который затем перенаправляет его на steam.

Мое приложение реагирования имеет API.js:

import axios from "axios";

export default axios.create({
  baseURL: "http://localhost:8081/api",
  responseType: "json"
});

, которое используется моимfront-end:

import API from '../../utils/API'

API.get('/auth/steam/', {
   params: {
   }
}).then(res => {
   console.log(res)
})

Маршрут в моем бэкэнде:

const express = require('express');
const router = express.Router();
const passport = require('passport')

router.use(passport.initialize());
router.use(passport.session());

router.get('/steam', 
  passport.authenticate('steam', { failureRedirect: '/' }), 
  function(req, res) {
  }
)

router.get('/steam/return',
  function(req, res, next) {
    req.url = req.originalUrl
    next();
  }, 
  passport.authenticate('steam', { failureRedirect: '/' }),
  function(req, res) {
    res.send({ user: req.user });
  }
)

Я уже использую пакет cors, но это не помогло.

Я ожидаюJSON-объект с информацией логина.Я получаю:

"Запрос перекрестного происхождения заблокирован: политика одинакового происхождения запрещает чтение удаленного ресурса в https://steamcommunity.com/openid/login?openid.mode=checkid_…steam%2Freturn&openid.realm=http%3A%2F%2Flocalhost%3A8081%2F. (причина: отсутствует заголовок CORS 'Access-Control-Allow-Origin'). "

Экспресс-бэкэнд работает, когда я использую URL из браузера, но не при перенаправлении.

...