Мой сервер работает на localhost: 8080. Мой клиент работает на localhost: 3030. Я хочу использовать httponly cook ie для установки токена refre sh для управления обновлением и истечением срока действия токена доступа JWT.
Код моего сервера выглядит так
app.use(
cors({
origin:
process.env.NODE_ENV === "production"
? "abc.com"
: "localhost:3000",
credentials: true
})
);
apolloServer.applyMiddleware({ app, path: "/graphql" });
На клиенте , У меня есть
const link = createHttpLink({
uri: `localhost:8080/graphql`,
credentials: "include"
});
const client = new ApolloClient({
cache: new InMemoryCache(),
link
});
Как и ожидалось, я получаю эту ошибку:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:8080/graphql. (Reason: CORS request did not succeed).
Я ожидаю этого, потому что я делаю запрос от localhost: 3000, который идет к localhost: 8080.
Теперь, если я изменю разрешение на любое происхождение, используя *
,
app.use(
cors({
origin: process.env.NODE_ENV === "production" ? "abc.com" : "*",
credentials: true
})
);
, я получу Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at ‘http://localhost:8080/graphql’. (Reason: Credential is not supported if the CORS header ‘Access-Control-Allow-Origin’ is ‘*’).
Так какой вариант у меня есть? Нет ли способа сделать запрос на учетную запись с помощью httponly cook ie, когда сервер и клиент работают на разных портах?