为会话设置服务器端cookie的正确方法

我有以下function,当用户点击某个端点时,在服务器上调用,例如/api/login我在服务器上处理它,因为我想设置服务器端Cookie来存储身份validation令牌。 目前看起来像这样:

 const createSession = (req, res, url) => { const apiCall = request.post(url, (err, response, body) => { // eslint-disable-line if (err) return res.sendStatus(500); else if (response.statusCode !== 200) return res.status(response.statusCode).send(body); const data = JSON.parse(body); const options = { path: '/', hostOnly: true, httpOnly: true, maxAge: 3300000 }; // 55 min expiration if (secrets.DOMAIN !== 'localhost') options.secure = true; res.cookie('SESSION_TOKEN', data.token, options); res.cookie('SESSION_EMAIL', data.email, options); res.status(200).send(body); }); req.pipe(apiCall); }; 

它的工作,但我觉得它非常非常详细,不知道是否有更好的方法来处理这个,也许除了请求库之外的其他东西? 我试图找出使用节点的http,但永远不可能。

以下是在我的快递服务器中使用此function的示例:

 app.post('/api/login', (req, res) => { const url = `${secrets.API_HOST}/login`; createSession(req, res, url); }); 

我会build议快速会议 ,但部分取决于您的使用情况。