CORS: я не могу ограничить доступ к URL - PullRequest
0 голосов
/ 15 мая 2019

Я использую node.js с express и graphql, и я хотел бы ограничить доступ http://localhost:4000. Я использую как браузер Firefox.

У меня есть файл, где я обрабатываю весь доступ к сайту, который называется route.js, где я использую модуль "cors". И я настроил свои cors на получение ошибки при попытке доступа с http://localhost:4000, потому что я разрешаю доступ только с http://localhost:3000

routes.js

import {Router} from "express";
import GraphHTTP from "express-graphql";
import {SchemaFEB, SchemaFIBA} from "../schemas/schema";
import {FEBPlayerModel, FIBAPlayerModel} from "../models/player.model"; 
import path from "path";
import cors from "cors";

const router = Router();
const corsOptions = {
    origin: "http://localhost:3000",
    optionSuccessStatus: 200
}

router.get(/^\/liga-femenina-(1|2)\/?\w*$/, cors(corsOptions), (req, res) => {
    console.log("route: " + path.resolve(__dirname, "../../../dist/index.html"));
    res.sendFile(path.resolve(__dirname, "../../../dist/index.html"));
});

router.get(/^\/women-(euroleague|eurocup)\/?\w*$/, cors(corsOptions), (req, res) => {
    console.log("route: " + path.resolve(__dirname, "../../../dist/index.html"));
    res.sendFile(path.resolve(__dirname, "../../../dist/index.html"));
});

router.get("/api", cors(corsOptions), (req, res) => {
    res.json({text: "Hello World from API!!!"});
});

router.get("/graphiql", cors(corsOptions), GraphHTTP({
    schema: SchemaFEB,
    pretty: true,
    graphiql: true
}));

router.post("/graphiql", cors(corsOptions), GraphHTTP({
    schema: SchemaFEB,
    pretty: true,
    graphiql: true
}));

router.get("/graphiql", cors(corsOptions), GraphHTTP({
    schema: SchemaFIBA,
    pretty: true,
    graphiql: true
}));

router.post("/graphiql", cors(corsOptions), GraphHTTP({
    schema: SchemaFIBA,
    pretty: true,
    graphiql: true
}));

module.exports.Routes = router;

Но у меня есть страницы и делаю запросы из http://localhost:4000. Здесь у вас есть пара экранных шапок, где вы можете увидеть, как я получаю страницы и делаю запросы.

enter image description here

enter image description here

Кроме того, вы можете видеть, как правильно установить заголовок Access-Cotrol-Allow-Origin на http://localhost:3000, но если я делаю запросы от http://localhost:4000, я получаю правильный ответ, когда думаю, что у меня ошибка.

Что я делаю не так? Как я могу сделать, чтобы получить ошибку, когда я делаю запрос от URL, например, не http://localhost:3000,?

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