cookie和session

Cookie:当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择,都纪录下来。当下次你再光临同一个网站,WEB 
服务器会先看看有没有它上次留下的 Cookie 资料,有的话,就会依据 Cookie里的内容来判断使用者,送出特定的网页内容给你.
Session:指的就是访问者从到达某个特定主页到离开为止的那段时间,在服务器存储用户的相关信息。
共同之处在于:cookie和session都是用来跟踪浏览器用户身份的会话方式。
cookie 和session 的区别:
1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
   考虑到安全应当使用session。
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
   考虑到减轻服务器性能方面,应当使用COOKIE。
4、所以个人建议:
   将登陆信息等重要信息存放为SESSION
   其他信息如果需要保留,可以放在COOKIE中

 

当前项目里并没有使用传统的账号密码的形式,而是使用手机号验证码登录。当用户第一次登录成功后,我们会把用户的userid等信息生成加密字符串以token的形式放在cookie中过期时间是3个月,使用response返回,只要用户设备不清除缓存那么之后很长一段时间内再次请求时request中带上此token都是默认登录的。

我们项目中自定义了一个注解@UserId(require=true),如果controller层的方法参数中有该注解且require=true就说明需要用户进行登录操作。然后又使用了handlerMethodArgumentResolver接口这是一个参数解析器,重写了其中的supportParamter和resolveArgument方法,在supportParamter判断参数是否被@UserId注解修饰,如果有被@UserId修饰的参数那么就会执行resolveArgument方法,在supportParamter中判断request的cookie中是否有token字符串,如果token不存在且该注解的require为true就会抛出未登录异常,由web捕获让用户登录;否则解密token,转为对象获取userid的值,赋予该参数。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值