服务器在解析发出的相同Cookie时遇到问题

时间:2018-07-25 21:24:41

标签: node.js express cookies session-cookies

我正在运行一个快速应用程序,该应用程序使用开箱即用的堆栈(cookie解析器,connect-session等)。我还使用了一个i18n模块,该模块根据用户的语言设置cookie。我遇到一个cookie问题,不确定我是否发送正确的cookie,或者服务器解析它们时遇到问题。每当我对用户进行身份验证时,它都会发送一个如下所示的Cookie

"language=en-US; Path=/, keystone.uid=s%3A5b4f9dc45e23fe02b4b24862%3ACzrzXyYInv7VKl5PaevC9Ynd1qJD72Ip%2BmCd7NynoxU.rGWyRaQecitVOH4vQpZTD1ThpvQ44BI%2BmzOF51kjSms; Max-Age=864; Path=/; Expires=Wed, 25 Jul 2018 19:07:02 GMT; HttpOnly, this.sid=s%3AappByhBNAo31t5RlBF9cd80lZcsQEjE3.o4Wq9o7bhpptCrcJt6XIh1jjKQgWPgibnoI8TDalkDk; Path=/; Expires=Thu, 25 Jul 2019 18:52:38 GMT; HttpOnly"

现在,在我的应用程序(它是一个响应本机应用程序)内部,我存储了未修改的字符串,每当我在下一个请求中尝试再次发送它(不带引号)时,我的服务器就无法解析它,而仅解析语言cookie。我已经使用了相同的cookie,并尝试通过提琴手和邮递员发送它,它也有同样的问题。我能够成功撤回会话的唯一方法是仅发送

"this.sid=s%3AappByhBNAo31t5RlBF9cd80lZcsQEjE3.o4Wq9o7bhpptCrcJt6XIh1jjKQgWPgibnoI8TDalkDk;"

在Cookie中。

因此,在进一步测试后,我决定下载Cookie解析器模块以对其进行单独测试,并且确实将整个cookie解析为错误。任何人都知道该cookie字符串是否真的无效,无法发送回服务器?如果是,我可以对其进行哪些修改以使其有效?我可能最终不得不编写一个正则表达式来提取this.sid令牌,而我对正则表达式的理解不是很好,因此也非常感谢您提供正则表达式。谢谢

1 个答案:

答案 0 :(得分:0)

好吧,我从中获取Cookie的标头是“ Set-Cookie”标头,该格式与Cookie标头应采用的格式不同。如果您在React Native中遇到类似的问题,则有一个模块可以解析Set-Cookie标头Set-Cookie-Parser