请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

jest测试,session中没有userInfo

项目启动,通过网页访问页面的时候cookie,session都正常,

但是jest测试的时候session里就没有userInfo,需要session的地方全都是返回10005,未登录, (运行了老师源码,也是一样)

jest /api/user/login 获取的cookie

weibo.sid=gn12aRBR1v9lfvmWcPbDEWjvdPAYMOG_; path=/; expires=Sun, 10 Nov 2019 10:23:44 GMT; httponly,weibo.sid.sig=NKjrnqZ81QMyHE3QFTbUineU0YM; path=/; expires=Sun, 10 Nov 2019 10:23:44 GMT; httponly

koa app.js ctx.header.cookie

weibo.sid=gn12aRBR1v9lfvmWcPbDEWjvdPAYMOG_; path=/; expires=Sun, 10 Nov 2019 10:23:44 GMT; httponly,weibo.sid.sig=NKjrnqZ81QMyHE3QFTbUineU0YM; path=/; expires=Sun, 10 Nov 2019 10:23:44 GMT; httponly

cookie发过去了,没有解析到session里

图片描述
需要session的地方全都是返回10005,未登录

正在回答 回答被采纳积分+3

2回答

不成大触不可熟睡 2020-01-05 23:06:05

我的也是

0 回复 有任何疑惑可以回复我~
双越 2019-11-09 20:05:04

估计是登录逻辑有问题,正好借此查一查。

  1. 确定登录中间件中是否能拿到 cookie 

  2. 确定 redis 中是否有登录信息

即,把登录的过程都挨着查一遍。jest 报错,也就体现出了 jest 的价值。

0 回复 有任何疑惑可以回复我~
  • 提问者 慕虎2082646 #1
    // COOKIE = res.headers['set-cookie'].join(';')
    const resCookie = res.headers['set-cookie'][0]
    const str1 = resCookie.match(/weibo.sid=(\S*);\s/)[0]
    const str2 = resCookie.match(/weibo.sid.sig=(\S*);\s/)[0]
    COOKIE = str1 + str2
    jest中cookie这样设置又对了
    回复 有任何疑惑可以回复我~ 2019-11-12 15:49:46
  • 双越 回复 提问者 慕虎2082646 #2
    额。。比较奇怪。案例说这样找出来的 cookie ,和直接获取的 cookie ,也没啥区别呀。
    回复 有任何疑惑可以回复我~ 2019-11-12 19:02:01
  • raind33 回复 双越 #3
    。。。
    回复 有任何疑惑可以回复我~ 2019-12-07 23:03:40
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信