javaweb 前后端分离 登录随机码存session跨域问题

一、背景

       目前接手一个Javaweb项目,属于半成品的那种,前端代码和Java代码在一个项目中,这种情况也就不存在什么跨域问题,可是我不擅长写前端,于是公司找了个前端加入项目团队,我就将前端的代码给到他,我写后端接口服务。再做用户登录时出现问题了,之前用户登录的随机码存储在session中,用户登录时从session中取出来然后校验是否正确,现在也这样做,但发现从session中取不出存储的校验码,通过日志发现每次获取到的session都是新的session,也就是每次sessionId都不同,这也就导致了每次存值和取值的session是两个,那肯定取不出随机码了。

二、思路

     使用session存随机码时必须保证取时的session和存的session是一个,前后端分离时就会出现跨域问题,ajax跨域请求接口时每一次都会产生新的session,如果这种情况再使用session,那肯定取不出值。我从网上找了很多方案,但可行性和可用性都没有合适的或者说都没有能用户。现在我给出一个方案,可行且保证登录安全性。方案:前端每次请求验证码的时候,传一个随机数,服务端用这个随机数和验证码进行key和value的形式存储,建议用map集合,用户点登录的时候把用户输入的验证码和之前的随机数都传给服务端,服务端用key取出value进行校验。

这里就提供思路,代码根据自己项目进行修改。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值