express - Axios GET 未将 cookie 传递给 ExpressJS 服务器
问题描述
问题似乎是 axios 没有将 cookie 与 GET 请求一起传递到 /validate 端点,但它可以通过 reactJS 客户端应用程序工作。/validate 获取 cookie,提取令牌并对返回响应的用户数据库进行 axios 调用。
这个想法是让带有 cookie 调用的 curl 与这个 API 服务器以及 UI 客户端应用程序一起工作。一切都在同一个虚拟机上,我尝试在 API 服务器上使用 cors 并在 Auth 上使用 allow-headers 但没有奏效。
Cookie 设置
res.cookie('token', response.data.access_token, { maxAge: 9000000, httpOnly: true, sameSite: 'lax', signed: false, secure: true });
ExpressJS API 服务器
console.log(request.cookies) <--I can see cookies
axios.get('https://server.com/validate', {withCredentials: true})
.then((res) => {
console.log(res.headers)
console.log("API says ayyyyy")
next()
}, (error) => {
//console.log(error)
console.log("API says noooo")
});
ExpressJS 身份验证服务器
router.use('/validate', function(req, res, next) {
let accessTok = req.cookies['c_accessToken']; <-- no cookies here
let accessToken = 'Bearer ' + `${accessTok}`;
axios.request({
url: '/oauth/me',
method: 'get',
baseURL: process.env.RT_VENDOR_HOST_UAT,
headers: {
'Authorization': `${accessToken}`,
'content-type': 'application/json'
}
})
.then(response => {
解决方案
推荐阅读
- javascript - 使用 browserify 捆绑 js 代码时找不到预设 @babel/react
- bash - Bash 算术错误:“let: =+: 语法错误:预期操作数(错误标记为“=+”)+ 等于”
- django - 如何在 Django 的 ArrayList 中按值排序?
- python - 如何滚动到 QTableView 中的特定行?
- r - R group_by:具有 3 个 A、B、C 类的列。将任何等于 A 的元素转换为 B 或 C 以最大化 B 或 C 的最小频率
- c++ - 深拷贝指针和删除内存
- bash - Bash - 嵌套的while循环:将txt文件行写入csv
- c - 在 STM32F4 PWM 上生成固定数量的脉冲
- php - 使用过滤器将类添加到 Wordpress 中模板文件的标头中的 div
- php - PHP数组逗号分隔字符串