Сторонние перенаправляет на браузер, а не на бэкэнд - PullRequest
0 голосов
/ 30 сентября 2018

Привет и заранее спасибо.

Мы запускаем наше приложение Node.js / Express в App Engine, которое выполняет интерфейс React в качестве статических файлов.В какой-то момент пользователь может перенаправить к третьей стороне, чтобы пользователь мог войти и авторизовать некоторые из своих данных, которые управляются этой третьей стороной.Мы предоставляем URI перенаправления третьей стороне в качестве параметра в строке запроса, которая равна https://www.example.com/api/thirdparty/OAuthCallback.

Когда пользователь отправляет авторизацию на сторонней стороне, они должны быть перенаправлены на этот URI, которыйявляется конечной точкой API в нашем приложении, где мы обрабатываем результат, а затем в нашем бэкэнде мы перенаправляем пользователя на его панель мониторинга.Вместо этого пользователь перенаправляется на этот URI в браузере.

Мы знаем (мы думаем), что делаем маршрутизацию правильно, потому что мы можем достичь этой конечной точки из Почтальона и таким образом моделировать процесс.

Вопрос в том, почему это перенаправление идет на браузер, а не на наш сервер?

Ниже вы найдете точку входа нашего сервера (index.js) и маршрут, по которому мы ожидаем попасть (thirdparty.js)

index.js:

    //index.js

import express from "express";
import thirdparty from "./routes/thirdparty";
import httpsRedirect from "./middlewares/https-redirect";

const app = express();

var httpsPort = app.get('https-port');

app.use(httpsRedirect({httpsPort: httpsPort}));
app.set('trust proxy', true);
app.use(bodyParser.json({limit: '50mb'}));
app.use(bodyParser.urlencoded({limit: '50mb', extended: true}));

app.use(express.static(path.join(__dirname, '../build')));
app.use("/api/thirdparty", thirdparty);

app.get("/*", (req, res, next) => {
  console.log('new request from: '+req);
  res.sendFile(path.join(__dirname, '../build', 'index.html'));
});

app.listen(8080, ()=>console.log('Listening on port 8080'));

thirdparty.js (маршрут):

    // thirdparty.js
import express from "express";
const router = express.Router();
var oauth2 = require('./lib/OAuth2.0')();

router.get('/OAuthCallback', function (req, res) {
  console.log("CODE--------------------------- : " + req.query.code);
  var params = {
    code: req.query.code,
    redirect_uri: 'https://www.example.com/api/thirdparty/OAuthCallback'
  }
  oauth2.authCode.getOAuthToken(params, saveToken);
  function saveToken(error, result) {
    // do things with the result
    res.redirect(process.env.HOST+"/dashboard");
  }
});

export default router;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...