【发布时间】:2021-03-30 14:23:29
【问题描述】:
似乎无法弄清楚这一点。我有一个使用 create-react-app 的客户端,它在 express/graphql 上向服务器发送请求,它在本地为 JWT 令牌设置 cookie,但我无法在 heroku 上设置 cookie。
有谁知道如何获取 cookie 来保存?
import dotenv from 'dotenv';
dotenv.config();
import express, { response } from 'express';
import { graphqlHTTP } from 'express-graphql';
import cookieParser from 'cookie-parser';
import Access from './entity/access';
import cors from 'cors';
import { schema, root } from './api/schema';
import { createConnection } from 'typeorm';
createConnection()
.then(async (connection) => {
await Access.load();
const app = express();
const corsOptions = {
origin: process.env.CORS_ORIGIN!,
credentials: true,
optionsSuccessStatus: 200
};
app.set('trust proxy', 1);
app.use(cors(corsOptions));
app.use(express.json());
app.use(cookieParser());
app.use(
process.env.GRAPHQL_PATH!,
graphqlHTTP((request, response, graphQLParams) => ({
schema: schema,
rootValue: root,
graphiql: true,
context: {
req: request,
res: response,
},
}))
);
app.listen(parseInt(process.env.PORT! || process.env.APP_PORT!));
console.log(
`Server started`
);
})
.catch((err) => {
console.log(err);
});
export function setRefreshTokenCookie(res: Response, token: string) {
const refreshExpiration = Access.refreshExpiration();
res.cookie(process.env.REFRESH_TOKEN_NAME!, token, {
domain: process.env.REFRESH_TOKEN_DOMAIN!,
secure: process.env.REFRESH_TOKEN_SECURE! == "true",
httpOnly: process.env.REFRESH_TOKEN_HTTPONLY! == "true",
expires: refreshExpiration,
maxAge: refreshExpiration.getTime(),
});
}
【问题讨论】:
标签: node.js express heroku cookies