spring Security框架整合thymeleaf了,现在要实现记住我功能。
这个要在配置里面进行配置记住我的功能
现在的情况,我们只要登录之后,关闭浏览器,再登录,就会让我们重新登录,但是很多网站的情况,就是有一个记住密码的功能,这个该如何实现呢?很简单
在授权的方法里面写这个
重新启动项目,进入登录页面,多了一个记住我的按钮
我们再次启动项目测试一下,发现登录页多了一个记住我功能,我们登录之后关闭 浏览器,然后重新打开浏览器访问,发现用户依旧存在!
思考:如何实现的呢?其实非常简单
我们可以查看浏览器的cookie
还没有登录的时候,查看这个页面的cookie
点击记住我,登录成功之后,我们重新查看这个cookie
这个是多了一个remember-me的记录,就是因为我们在配置里面配置了这个记住我的配置,所以点击了记住我按钮,登录成功之后,我们自己的浏览器里面的cookie里面就记住了这个登录的用户名和密码。
现在的登录页面,我们想要自己的页面,那么自己需要写一个登录的页面
之前的前端的页面的登录按钮上面的路径是固定的,就是springsecurity框架的页面的路径 之前的前端
后端配置里面走的路径
配置里面只要这样写,之后login路径就会到框架里面 的页面
之后在配置类里面写一个配置,让登录页面到我们自己写的页面,配置类里面这样写
这个是我们自己定义的页面的路径,对应的controller层是这样的写
前端登录的按钮,走的就是我们在controller配置的
启动项目,以后没有权限的,都会到自己定义的登录的页面,起到作用的就是这句话
看源码里面
所以,我们就是通过这个方法,修改了这个登录的页面,也就是通过以上的配置,我们就可以自己定义一个登录的页面,我们一点击登录的按钮,之后就跳转到我们自己写的登录的页面,或者没有权限的话,就跳转到我们自己定义的页面。
但是还有一个问题,我们来到了自己自定义的页面,我们输入用户名和密码之后,往哪里跳转 @{/login}
<form th:action="@{/login}" method="post">
<div class="field">
<label>Username</label>
<div class="ui left icon input">
<input type="text" placeholder="Username" name="username">
<i class="user icon"></i>
</div>
</div>
<div class="field">
<label>Password</label>
<div class="ui left icon input">
<input type="password" name="password">
<i class="lock icon"></i>
</div>
</div>
<div class="field">
<input type="checkbox" name="remember">记住我
</div>
<input type="submit" class="ui blue submit button"/>
</form>
配置类里面这样写,这个login路径还是源码里面的,我们只需要配置就可以了
这样重新启动之后,在自己的登录页面,就可以写用户名和密码,之后点击提交,就会到login这个路径之后,就会自动的进行验证用户名对不对。
还有一个问题,前端传到后端的用户名和密码的名字是自己写的,乱写的,后端如何获取参数
,可以在配置里这样写,就和前端的一样,不然就是默认的username password
前端记住我的名字,也是可以自己定义的,之后在配置类里面配置和前端一样的
以上就是全部的,小白入门