session和cookie机制,终于被我捋顺了!

不好意思没有排版,但是内容还是可以看的!
刚才发现了个新大陆,之前还一直在想,后端laravel是怎么看待已经认证的用户的,但是就是没有想起来去用Auth Facade去获取一下当前的用户,啊呀早这么弄估计也能早一点捋顺 laravel的session和cookie了!嗯被人说蠢也无可厚非,谁让我之前真的迷到现在自己都觉得自己是个蠢货了。。哈哈哈哈反正弄开了现在!

首先是迷人的 laravel_session,这个就是我们平时session_id了。首先要撇清会话管理和用户认证是两码事,用户认证是基于会话管理的!尽管我一开始迷到认为,session和用户认证是一体互不分离的。。

也就是说,laravelsession是会话管理的东西,只要每次某种情况发出一个新的请求到后台(可能是新的窗口或者是浏览器),就都会产生一个新的会话,也就会随之产生一个新的laravelsession,之前一直迷在以为session和用户之间有什么不可言说的关系,然后乱查乱蒙。然后我们知道,一个laravelsession在后台的storage 就对应了一个新的文件,通过对后台storage中session文件的观察和登录注销测试,发现用户认证实际则是通过传到后台的账号密码进行认证,认证完毕后 操作session信息,然后可能就会再把cookie重新set回来,直到下一次进行新的会话,session才发生变化。session start似乎是会自动区分不同的会话。


但是,即使是下一次新的请求,也并不会完全抛弃这次的session内容,似乎是user和session之间有着某种联系,别急,叫俺翻一下数据库,好像有点头绪。

好像是加密了,但是看到了一个叫remember_token的东西,然后想起来了以前的断断续续的印象。如果用户认证是基于会话管理的,那么一次会话结束了,那其中的用户认证信息也就消失了。有什么可以将一个用户信息连接在两个会话中呢?也就是我们常言的 记住我 功能。自己迷瞪了一会儿,记得是在哪存了个什么。。嗯。。是用户里存session还是session里存用户。。我也不知道自己为什么会在这两个里面迷。假设能够用在cookie里面存用户信息,换了个session还是会断。本地cookie里面就算存了用户也是没办法认证的(自己都有点说服不了自己了)。但是如果在用户表里面的rememberToken字段存上一个session信息,也就是最后一次会话的一个标识。当每次开始新的会话的时候,上一次的cookie应该是还没有没被清除的时候,这时候用户里还存在着上次最后连接的session认证,尽管新的会话会开启新的session块,但是却不会影响接受新请求的时候携带上次的断开cookie,也就是找到上次连接的尾巴判断一下是不是这个会话。如果对这个会话有印象,那上次就是你应该被我记住,嗯,所以与此同时在开启了新的session,不管有没有认证了老的session,这时候都应该把新的session信息存到用户的remember里面了!

终于捋顺了,个人见解,有误希望大佬们指出。真的能够理解迷瞪的时候的焦虑和求助无援的痛苦,希望我的文章能够帮助一些像我一样感觉很迷很绕的人~
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值