- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在这个测试用例中,我发送一个带有用户 ID 和密码的 axios post 请求到本地运行 passportjs 的 ExpressJS 服务器。服务器以状态代码 200 响应,并使用 set-cookie 发送适当的 header 。
我需要将后续请求视为授权请求,因为尝试了以下选项,但似乎都没有用。它被拒绝,状态代码为 401。
第一次使用用户名和密码调用,响应状态为 200
const userDoc = {
userId: 'test-user-1',
userName: 'Test User 1',
emailId: 'test.user.1@abc.xom',
password: 'test-password'
} ;
let resp
resp = await axios({method : 'post', url : 'http://localhost:4040/auth/local', data : {userId: userDoc.userId, password: userDoc.password },withCredentials: true })
以下选项用于发送下一个请求
发送作为第一个请求的一部分收到的 cookie
const headers = { headers : {Cookie: resp.headers['set-cookie'][0] } };
发送作为第一个请求的一部分收到的 header
const headers = { headers : resp.headers};
发送 withCredentials: true
以及上述 header 。
使用上述任一选项进行第二次调用
resp = await axios({method : 'post', url : 'http://localhost:4040/v1/master/account', data : accountDoc , headers, withCredentials: true})
const axios = require('axios')
const http = require("http")
const httpAgent = new http.Agent({keepAlive : true , timeout :1000})
const instance = axios.create({httpAgent})
const resp1 = await instance({method : 'post', url : 'http://localhost:4040/auth/local', data : {userId: userDoc.userId, password: userDoc.password, } , withCredentials: true })
const resp2 = await instance({method : 'post', url : 'http://localhost:4040/v1/master/account', data : accountDoc , withCredentials: true })
已拒绝,状态码为 401
-- Error: Request failed with status code 401
at createError (/home/Projects/FinAccounts2003/node_modules/axios/lib/core/createError.js:16:15)
at settle (/home/Projects/FinAccounts2003/node_modules/axios/lib/core/settle.js:17:12)
at IncomingMessage.handleStreamEnd (/home/Projects/FinAccounts2003/node_modules/axios/lib/adapters/http.js:269:11)
at IncomingMessage.emit (events.js:412:35)
at endReadableNT (internal/streams/readable.js:1334:12)
at processTicksAndRejections (internal/process/task_queues.js:82:21)
服务器代码是标准的 passport-js 本地代码,与浏览器兼容。
它可能与某些问题重复,给出的解决方案是 1) withCredentials: true
,上面已经尝试过 2) Authorization: Bearer ${token}
- not适用于这种情况,在passport js中,直接设置cookie,并没有获取token。
最佳答案
对我有用的一个解决方案是使用模块 tough-cookie和 axios-cookiejar-support .我将它们组合在一个 persistent-client.js
文件中,然后我能够在请求之间维护 session (commonJS):
const axios = require('axios').default;
const { CookieJar } = require('tough-cookie');
const { wrapper } = require('axios-cookiejar-support');
module.exports = function () {
const jar = new CookieJar();
const client = wrapper(axios.create({ jar }));
return client;
}
关于javascript - 公理 : How exactly to preserve session after successful authorization and send with subsequent request - while testing without browser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70113882/
所以现在我有一个像这样的字符串列表{a, b, c, d, Justin, Connor, BYE1, BYE2} 现在我正在尝试用子序列 (0,3) 中的“BYE”过滤掉列表中的字符串。但是,如果我
我不知道在这里问这个问题是否合适,如果不合适,请见谅。 我得到了一个序列 ALPHA,例如: A B D Z A B X 我得到了 ALPHA 的子序列列表,例如: A B D B D A B D Z
优化 O(n^2)算法到O(n log n) . 问题陈述 给定数组 A的 n正整数。将数组分成长度不大于k的连续子序列使得每个子序列的最大值之和最小。这是一个例子。 如果n = 8和 k = 5和数
对于大多数 Swift Collections , 索引 Collection's SubSequence与底座兼容 Collection . func foo(_ buffer: T) -> T.I
我正在尝试解决 problem 的变体我之前问过: Given a string of parentheses (length <= 1,000,000) and a list of range qu
题目地址:https://leetcode.com/problems/distinct-subsequences/description/ 题目描述 Given a string S and a
比如说,String str = "hello world";要,打招呼,我们可以使用 str.subSequence(0, 5)。如果它是一个从 0 开始的索引字符串,那么为什么我们不把 str.s
所以我读了this answer和 this answer关于 subSequence() 和 subString() 之间的区别,我知道两者之间的唯一区别是返回类型。事实上,subSequence(
题目地址:https://leetcode.com/problems/increasing-triplet-subsequence/description/ 题目描述: Given an unso
题目地址:https://leetcode.com/problems/longest-increasing-subsequence/description/ 题目描述 Given an unsor
题目地址:https://leetcode.com/problems/longest-palindromic-subsequence/description/ 题目描述 Given a strin
我在使用 Java 和 Android Studio 时遇到问题;以下代码是一个退格按钮: else if(view == btnBackspace){ int expressionLengt
import requests for i in range(3): g = requests.get('http://some-url/') print "request done"
我已经阅读了 LCS 问题的解决方案。但是现在有一个最长相似子序列问题:序列 C 是两个序列 A、B 的相似子序列当且仅当 C 是 A 的子序列并且我们最多可以替换 C 中的 K 个元素使得 C 是
我将复习在寻找两个等长字符串的最长公共(public)子序列的上下文中讨论动态规划的笔记。有问题的算法输出长度(不是子字符串)。 所以我有两个字符串,比如说: S = ABAZDC,T = BACBA
我们可以用DP(动态规划)找到两个字符串的LCS(最长公共(public)子序列)。通过跟踪 DP 表,我们可以获得 LCS。但是,如果存在不止一个濒海战斗舰,我们如何获得所有的濒海战斗舰呢? 例子:
N4567 标准禁止对先前在条件中声明的名称进行某些类型的重新声明,如下所示——根据标准(§3.3.3/4): Names declared in the for-init-statement, th
题目地址:https://leetcode.com/problems/longest-uncommon-subsequence-i/description/ 题目描述 Given a group
题目地址:https://leetcode.com/problems/count-different-palindromic-subsequences/description/ 题目描述 Give
题目地址:https://leetcode.com/problems/distinct-subsequences-ii/description/ 题目描述 Given a string S, co
我是一名优秀的程序员,十分优秀!