发表于: 2017-12-28 08:01:48
2 623
一、 今天完成的事情
基本完成?
代码地址:https://github.com/hdonghong/codetask/tree/master/task4/tilesdemo
步骤1.使用DES对用户ID和登录时间加密,生成Token,放入Cookie中,拦截器里通过Cookie中判断Token的有效性来判断用户是否登录。
①使用DES
简单了解下DES:Data Encryption Standard,数据加密标准,是一种对称密钥加密块密码算法,基于使用56位密钥。
这里借助一个叫SercretUtils的工具类进行DES加密(源码中有)。
②对用户ID和登录时间加密
这里需要先设计用户表(user)。
其中login_at指用户登录时间。
接着就是编写与实现用户业务逻辑层的login方法,在这里进行加密处理。
注意到红框的部分是使用MD5算法加密,MD5是另外一种加密算法,是不可逆的加密。MD5Utils是封装的工具类
③生成Token,放入Cookie中。
首先说下Token,在计算机身份认证中是令牌(临时)的意思,在词法分析中是标记的意思。我是把它理解为一种临时标记。
CookieUtils是我封装的一个用于操作cookie的工具类。
此外,将token放入cookie中之后,也要加处理过的user放入session中,之后通过拦截器进行判断。
④拦截器里通过Cookie中判断Token的有效性来判断用户是否登录
编写LoginInterceptor类作为拦截器,实现HandlerInterceptor接口,重写preHandle方法。
在spring-mvc的配置文件中配置拦截器。
注意,红框指代拦截内容,我只拦截了t10.jsp页面的请求,不拦截t11.jsp页面的请求。
步骤2:修改Task4中的两个页面,一个设为用户不登录可以访问,一个设为用户必须登录才可以访问。要求用户必须登录才能访问的url统一增加前缀 /u/。
拦截器已在上一步骤配置完毕,这里适当修改页面的html代码。
成果展示:
登录页面:
登录失败:
有拦截页面与无拦截页面:
---------------------------------------------------------------------
3.最后:注册
二、明天计划的事情
三、 遇到的问题
四、 收获
评论