00:00
好,接下来呢,我们为这个页面来加上记住我的功能,比如我们现在登录的时候来写一个张三123456,我们登录以后呢,只要浏览器关掉,我们下次再来登录,这是没有用户的,哎,我们还需要重新登录,而记住我功能呢,是我们非常常用的一个功能,只需要登录一次以后呢,我们就自动登录,那这个功能怎么做呢?哎,非常简单,我们只需要来到这一块来开启记住我功能,好,我们使用HTTP点有一个叫remember me,好,我们来调用这个方法,这就开启了自动配置的记住我功能,我们来重新运行一下,我们看跟原来有什么不同。好,我来访问咱们这个首页,我来点击请登录,哎,我们发现呢,登录框这里边多了一个勾选框叫remember me on this computer,然后呢,我们要记住我我如果把它来勾上,我写一个张三123456,我点一个登录,我发现呢它登进来了,那我把这个浏览器关掉,我再打开。
01:18
来访问,诶发现呢,已经自动登录进来了,这就是呢,记住我功能它的实现呢也非常简单,F12来打开控制台这一块呢,有一个cookie,我们来看一下,第一次我们登录成功以后,只要我们勾选了,记住我security在登录成功以后,会为我们浏览器来发送一个cookie cookie名呢叫remember me来直是这一块,大家注意这个cookie它的过期时间,5月21号,那么现在呢,是5月7号,还有14天,我们默认呢,14天以后cookie才自动删除,那相当于只要14天以内我们来访问这个网站,这个cookie呢,都会自动的来带上,带上的话呢,我们spring security就会来检查之前某一个用户对应的这个cookie的值是什么,如果找到了我们这个用户呢,就相当于不用登录了,那就直接在这用。
02:15
当我们在点击注销的时候,我们看到spring security呢,也会给浏览器发命令让我们删除这个cookie,包括呢,我们在network里边来看log out请求,Log out请求的response里边来注意,哎注意呢,有一个set cookie mark0,也就是立即删除这个cookie,这就是我们remember me来记录一下它的功能,登录成功以后以后,然后呢,将咱们这个cookie发给浏览器。保存以后登录带上这个cookie啊,只要通过检查就可以免登录啊,以后访问页面好了,如果点击注销,点击注销也会删除这个cookie,会删除cookie,好,这是我们自动登录,但是呢,我们现在来看这个自动登录,我们记住我呢我们现在点个请登录,这是用security默认的登录页面,而我们给大家给的这个页面呢,Controltr里边来看有一个请求叫user log,这是来到登录页面,这是我们定制的登录页面,那怎么让他来到我们定制的登录页面呢?来我们来把这一块改一下。
03:47
来到我们security的配置定制的表单,登录功能是在这一块默认呢,我们说它的规则是来到log,来到登录页的,我们可以改变,怎么改变呢?来点调用一个方法叫log page,告诉spring security我们的登录页是发什么请求,那我们的登录页呢,自然就是发这个user login请求,好,我来发一个,它我来重启一下,看能不能来到我们自己的登录页。
04:20
好,我们来重新访问,我们先访问一个受保护的页面,比如我们来访问LEVEL1下载页面,由于呢,我们没有登录,会先转到登录页面,怎么回车,诶,我发现呢,它转到了我们默认的登录页面,包括呢,我们在这儿点击请登录,诶这块404,由于我们之前的链接还没改,我们把welcome页面的请登录,哎,请登录呢,不叫login了,哎,我们自己链向user login请求,那好,这一块呢,我们相当于就链向我们自己登录的页面了,但是登录页呢,我们要提交用户名密码给一个地方,我来登录,而用户名密码呢,们来等一会儿回车。
05:07
来点请登录哈,来到我们的登录页,或者呢,我们来访问一个受保护的也是来到我们的登录页,没问题,那么如果我们来写登录ZZZZ,那么这个登录要发给哪?我们一定要指定,我们来看一下默认规则,Security的配置叫log跟配置这一块,我们来看它下边提示的这些规则,有一个什么规则呢?我们来看。他说呢,这一块如果log请求是post,这是来处理我们认证的,而log请求是get,是去登录的表单的,而我们去登录表单呢,我们已经定义成user log了,所以说呢,要来登录我们这个登录页,必须发log post请求,好,我们把这个action我们来改成th action,我们来发一个按符大括号,我们叫login,好,这呢是我们登录的请求,我们在这儿来说一下。
06:06
默认形式的。形式的杠log代表处理登录,你只要把请求发到杠log spring security呢,就帮我们来处理,那发这个请求肯定要是带用户名和密码的,怎么带呢?我们看form log的规则,这个规则呢,我们来往下翻,这块有说明username,哎,你用username默认作为参数来带用户名,Password作为参数来带密码,如果想改就用它俩默认呢是username以及password,那我们来可以来改一下,比如我们来点一个username username参数呢,比如我叫user,那password参数呢,比如我叫PWD,那接下来呢,我们自定义的这个登录页,那我们要提交的用户名,我们就应该name的,我们就叫user,而密码呢,我们就叫。
07:04
PWD,好,我来重新启动一下,我们来看这个登录能不能。好,我们在这呢来访问,我来先访问一个受保护的页面,哎,没登录,他帮我们来转到这个登录页,然后呢,我们来填张三123456来点击登录,哎,我们发现呢,这块是个404,也就是说log请求没有找到,原是什么呢?来说一个重要的规则,那刚才说默认啊,它发post形式的login spring security是来处理登录逻辑的,但是当我们把logn PA页面改成user login以后,我们来看详细的这块说明,默认的get式的log去登录页,破形式的log是来处理登录请求,但是如果说我们自己定义成一个新的请求,那么这个请求get方式就是去登录页,而这个请求的post方式是去来认证,那么它的加上一个error参数就是登录错误加上log out。
08:11
就是退出,所以说呢,我们这会有默认规则,哎,一旦定制以后。来说,一旦定制,一旦定制咱们这个捞根派支捞根派制,那么log配置的post方式就是登录请求的处理逻辑。的post请求就是登录啊,这都是默认的,当然我们可以不这么说,我们可以用这个参数叫login process URL,我们是用哪个URL地址处理请求,你可以来说是log,如果不说的情况下,那是跟这个login配置一样的,好,只不过log根配是get方式,而我们要登录这一块是POS的方式,好,我们用它默认的,我来重新启动测试一下,看是不是这个逻辑呢?
09:09
好,我们在这呢,访问一个受保护的,比如LEVEL1回车要提示登录,我来写张三123456,我点击登录来,我们发现呢已经登录进来,我们登录成功了,我们再来把它注销,来点击请登录,我们给这个登录页呢,我们再来加上remember me,好们来到我们自己的登录页,好我们就来写一个input type呢,就是check box check box,那么关键我们要提交的name是什么?哎,我们就要记住啊。这个name是什么呢?它也有默认规则,我们来看security里边remember me,我们可以定制规则,比如有一个remember me的prime啊,我们这个参数的名字来看,这个参数的名字呢,默认的,它这一块呢,没有提示,它默认呢就叫remember me们可以自己来定义一个,比如我们就叫remember。
10:11
那我们要提交参数,那我们这个参数的值来check box就应该叫remember,好来重启一下,看我们这个remember me能不能起作用,好,我来F12,我们先来打开控制台。来重新刷新一下这个登录,这样呢,已经有了,记住我我们先来看我们这个cookie里边还没有相关的cookie来登录一次,来勾上,记住我点击登录来,我发现呢,Cookie就已经有了,那只要有了cookie,我把它关掉,我再来打开回去,诶这一块呢就自动登录上了,好,我们呢就简单整合了一下spring security为我们整个系统呢加上了权限控制,那么security后续的细节大家可以参照官方文档,或者呢持续关注我们上硅谷发布的相关课程。
我来说两句