有段不明白,如果session命中的是当前的cookie

有段不明白,如果session命中的是当前的cookie

那么cookie是怎么识别用户的,这里koa-generic-session的作用其实就是当发出http请求的时候,对请求体自动设置cookie和session,从课堂里我是这样理解的,cookie是自动设置的随机id,然后储存到session里,至于配置目录操作方式和时效等等就是在app中配置的。但我搞不懂cookie是怎么绑定用户的,比方说访问不同的路由,这时候ctx中的cookie还是那个cookie吗,有带你我搞不清楚的是就是ctx总是变化的吧,就是url在用户使用浏览器时候肯定有变动,但是cookie是否是从第一次生成的随机开始就一成不变呢???老师又说可能存在很多不同的cookie id.还有密钥的作用到底是什么作用来的,为什么从头到尾都没见到,仅仅是配置???那它的产生作用的地方是哪里,具体哪个流程中

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

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕星星 2020-08-12 16:56:01

同学你好,当前只是模拟登录,并没有对不同用户名进行判断。在后面的留言板项目中有对不同用户区分的操作哦,可以继续往下面学习。

祝学习愉快!

好帮手慕星星 2020-08-12 14:07:15

同学你好,问题解答如下:
1、cookie设置之后如果不手动修改就是一成不变的,一般也不会手动修改
2、不同用户登录对应着不同的cookie
3、秘钥的作用是koa-generic-session插件中执行的,不需要管怎么操作的,知道怎么配置就好。秘钥会加密cookie信息,避免盗取,使用的时候再解密。
祝学习愉快!

  • 提问者 慕雪9296518 #1
    对了,我在课间中就是实现登录验证的那里尝试了一下,就是修改query,发现不管我怎么改?后面的username的值,再刷新浏览器cookie的值都没有变,不是说的是不同的用户登录对应着不同的cookie吗???为什么这里一点变化都没有 router.get('/login-ccz',async (ctx,next) =>{ const query = ctx.query if(query.username){ ctx.session.userinfo = { username:query.username } str= 'login ok' }else { str= 'login faile' } ctx.body = str }) //模拟登录验证 router.get('/login-check-mock',async(ctx,next) =>{ ctx.body = ctx.session.userinfo || {} }) 比如这里我再浏览器输入的是localhost:3000/login-ccz?username=xxx username不断改变然后刷新浏览器,cookie值却不变这是怎么回事
    2020-08-12 14:36:14
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
5. Node.js全栈开发
  • 参与学习           人
  • 解答问题       307    个

前端工程师会后端开发已是趋势。从node.js到koa2再到数据库知识。结合真实项目,从项目需求分析、接口和数据设计到业务开发,帮你打通前后端任督二脉,为就业加码。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师