Spring mvc session cookie实现自动登录
设计过程
1. user表存储用户名密码等信息,login表存放用户登陆状态的表
user表中存储username,pwd,等信息
login表存username,series(UUID),token(过期时间,用户名,密码 加密后数据), validTime 过期时间。
2.调用用户登陆接口并且用户名密码验证成功之后,
a.计算登陆最大过期时间
b.生成token,(我是用过期时间+用户名+密码+盐)
c.生成cookievalue(用户名+UUID 并加密,格式自定义,方便取用户名和UUID就行,我是username+"_"+UUID)
d.查询登陆记录表,是否有登陆过。没有登陆,则插入登陆记录,有登陆记录,则更新series,token,过期时间。
f.添加cookie 到response cookiename(自己设定) cookievalue 即c
g.登陆成功后,可以把用户相关信息存入session,防止出现禁用cookie设置,这样可以在浏览器没有关闭的时候,使用session访问。
3.定义登陆拦截器,拦截除了登陆之外的所有接口(可以按照个人需求去拦截)
a.先找session中用户,如果能找到,则直接访问,如果找不到,取cookie->b
b.根据自定义的cookiename取到cookievalue后,解密后,字符串分割得到用户名和UUID
c.使用用户名和UUID查到登陆记录,判断当前时间是否在过期时间之前,如果过期,删除cookie后则重新登陆,没过期的->d
d.根据用户名查到用户信息,取到用户名密码,加上登陆记录中的过期时间,计算一把新token(因为修改密码后,需要重新登陆),新token与登陆记录中的token进行比较,不同则删除cookie后重新登陆,相同->f
f.token相同基本登陆验证已经完成了,再去数据库更新登陆记录表,把series,token,过期时间更新
j.把用户信息写进session中即可。
结束。
Spring mvc session cookie实现自动登录的更多相关文章
- cookie实现自动登录
有很多Web程序中第一次登录后,在一定时间内(如2个小时)再次访问同一个Web程序时就无需再次登录,而是直接进入程序的主界面(仅限于本机).实现这个功能关键就是服务端要识别客户的身份.而用Cookie ...
- C#检测并安装https站点的数字证书,CefSharp和HttpWebRequest通过会话Cookie实现自动登录访问https站点
HttpUtil工具类: using System; using System.Collections.Generic; using System.IO; using System.Linq; usi ...
- spring mvc 用cookie和拦截器实现自动登录(/免登录)
Cookie/Session机制详解:http://blog.csdn.net/fangaoxin/article/details/6952954 SpringMVC记住密码功能:http://blo ...
- struts2与cookie实现自动登录和验证码验证
主要介绍struts2与cookie结合实现自动登录 struts2与cookie结合时要注意采用.action 动作的方式实现cookie的读取 struts2的jar包 链接数据库文件 db.pr ...
- Spring Mvc session拦截器实现
Spring Mvc拦截器实现session过期跳转到登录页面 配置拦截器 <mvc:interceptors> <mvc:interceptor> <mvc:mappi ...
- 使用cookie下次自动登录
登录时勾选了自动登录处理: 1.加密账号和IP,保存在cookie中,cookie('auto', $value, $time) 2.解密cookie,取出账号和上次IP,判断上次IP==当前IP.账 ...
- cookie技术自动登录
user public class User implements Serializable{ private String username; private String nick; privat ...
- 使用cookie实现自动登录
一.从登录——>主页面,进行的过程是,输入 用户名和密码,以及验证码,点击“登录”跳转到Activity.jsp login1.action(跳转到登录页面) /** 跳转到login(有积分排 ...
- SpringBoot集成Spring Security(2)——自动登录
在上一章:SpringBoot集成Spring Security(1)——入门程序中,我们实现了入门程序,本篇为该程序加上自动登录的功能. 文章目录 一.修改login.html二.两种实现方式 2. ...
随机推荐
- 最新的 cocoapods 安装与使用(2019.04)
cocoapods简介: cocoapods 是iOS的类库管理工具,可以让开发者很方便集成各种第三方库,而不用去网站上一个个下载,再一个个文件夹的拖进项目中,还得添加相关的系统依赖库.只需要安装好c ...
- python 进程池Pool的apply_async方法以及一些需要注意的地方
在写多进程的时候我发现一个问题,用Pool的apply_async(异步非阻塞)的时候传入实例函数会出错,或者说是子进程被跳过似的感觉(python2.7). 但是用python3.7的话没有任何问题 ...
- 21. Merge Two Sorted Lists★
题目内容:Merge two sorted linked lists and return it as a new list. The new list should be made by splic ...
- Python随笔--爬虫(下载妹子图片)
- python机器可读数据-XML
XML XML是一门标记语言.也就是说,它具有包含格式化数据的文档结构. XML文档本质上只是格式特殊的数据文件. 在XML文件中有两个位置可以保存数据值:2个标签之间,标签的属性. 导入XML数据 ...
- spring Ioc容器之使用XML配置Bean
1.项目截图 2.创建xml文件 3.打印机接口 package com.example.demo.computerTest; public interface Printer { void init ...
- DAY4:简单购物系统
根据前几天对于循环和列表的学习,做了一个简单的购物系统: 密码模块就是前篇文章已经做过就,直接调用过来就行,简单说一下该购物系统功能 1,展示货物,需要手动添加,haha 2,判断余额是否充足并充值 ...
- mdadm语法
mdadm命令详解及实验过程 一.概念 mdadm是multiple devices admin的简称,它是Linux下的一款标准的软件 RAID 管理工具,作者是Neil Brown 二.特点 ...
- 前端生成水印之SVG方式
SVG:可缩放矢量图形(英语:Scalable Vector Graphics,SVG)是一种基于可扩展标记语言(XML),用于描述二维矢量图形的图形格式. SVG由W3C制定,是一个开放标准. (f ...
- L1 loss 与 MSE
---恢复内容开始--- 今天在训练时遇到的问题 把损失函数由 MSE 改成 L1 Loss 的时候 Loss 有了明显的下降 以前一直觉得 MSE 相对来说会更好 ,因为求导的话有标签与结果的差值作 ...