本文不是坑,作者已试,完美解决用户记住登陆状态的问题。本示例需要使用Spirng的拦截器。
前端代码:
用户名
密码
记住我
cokkieTool.java工具类,用户可以完全拷贝此类的内容:package com.blog.util;
拦截器代码,此处仅仅处理了用户是否登陆,cookie是否存有用户信息,session中是否存在用户信息,cookie中保存的用户信息是否能够在系统中查找到该用户:public boolean preHandle(HttpServletRequest request,
* 注意:每次重新启动浏览器会重新启动一个sessionId和Cookie,之前设置的session会因为sessionId的变化而取不到,
* 所以会出现用户明明已经登录,但是重开浏览器又需要登录. 流程:
* 1、用户选择记住密码:取出cookie中的用户名和密码查询,如果此用户已不存在
* ,则清除cookie中的值,如果存在则判断用户是否重新登录,如果未重新登录则将cookie中用户信息设置到session中
* ,如果用户重新登录了则判断登录用户是否与cookie中用户一致
* ,一致则将cookie中用户信息设置到session中,不一致则将当前登录用户的信息设置到session中。
* 将用户信息放入session中是为了(通过cookie中的用户名密码可以得到用户信息):
* 1、重开浏览器的时候如果已经登录的用户可以直接进入
* 2、防止用户直接将执行方法的连接拷贝进地址栏,而方法中又需要在session中取用户信息的错误
* 2、用户未选记住密码:判断session中是否存在用户信息,如果存在,则true,如果不存在则返回登录页面
用户点击登陆时的controller代码下面代码的含义是,当用户登录时勾选了name属性为“rememberPwd”的复选框时,传递到后台的值默认就是on,如果没勾选,值为空或者in,当用户勾选了记住我的选项,则将用户的信息保存进入session,同时设置cookie信息:int loginMaxAge = Integer.MAX_VALUE; //定义账户密码的生命周期,这里是一个月。单位为秒
记得用户点击退出登录时,需要将cokkie中的用户信息抹除:@RequestMapping("/singUp")
至此,就完成了使用java设置浏览器cookie记住用户登录信息的功能。
到此这篇跨域请求携带cookie(跨域 set-cookie)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/cjjbc/20786.html