向下拉显示出小程袭岩橘序界面,找到你想要退出登录的小程序图标,长按图标,微信界面底部会枣宴出现一个红色的区域显拍团示拖动到此处删除字样,就可以退出了。
大多数项目是需要安全控制的。这章用Spring Security实现用户登录功能。
这章新创建一个模块来开发。 创建模块参考 这里 。模块的ArtifactId为bhuser。
下面先写两个页面,需要在pom.xml文件中引入spring-boot-starter-thymeleaf。文件内容:
既然是安全控制,就需要有控制的点。这里写两个Controller,分别是两个界面。到最后的目标是一个界面不需要登录就可以浏览,一个界面需要用户登录后才能浏览。
在包com.biboheart.demos.controller下创建PageController。内容如下:
在sources/templates中创建两个页面,分别是home.html和hello.html
home.html内容如下:
hello.html内容如下:
启动服务后,访问localhost
点击连接“这里”进入hello页面。
现在是没有权限控制的情况下的结果。下面来增局兄没加安全控制,使home页面可以访问,hello页面需要用户登录才能访问。
在pom.xml中引入spring-boot-starter-security组件
这时候启动项目,访问首页就会跳转到登录页面了。
这个登录页面是框架提供的。用户名和密码是框架生成的。这样的用户名桐纳密码不可控制。接下增加自己的登录认证业务。
创建包com.biboheart.demos.security,安全控制的业务写在这个包下。创建security配尘森置文件SecurityConfiguration,内容:
注意,Spring Security 5必须配置 passwordEncoder。
重启服务,访问localhost
点击连接“这里”,跳转到了login界面
上两篇完成了用户信息表的增删查,接下来增加用户登录功能。采用spring security来进行权限控制。我们希望用户可以通过用户名+密码、邮箱+密码、手机号+验证码、微信登录三种登录途径。先用来完成用户名+密码或手机号+验证码登录。
前面做的用户信息表不是用来登录的,那些信息只是用户的基本信息。为了在用户列表请求得到的数据中不包含密码、手机号等敏感信息。把登录用的数据分开保存,关联到用户信息。
创建数据模型 Safety
这里我渗粗们先做一个保存的API,如果不保存一个密码的话,登录的功能不方便测试。先简单的实现用户登录的功能,接下去再优化,修改。把能考虑到的不安全因素解决。
创建一个用户名为biboheart,手机号为15000000000,密码为test的用户。用户前面的列表接口能查到最新创建的用户。
引入spring security组件,开始开发用户登录功能。
创建包:com.biboheart.demo.user.security,用户登录功能都在这个包中完成。
创建security配置文件
因为我们有两种登录方式,所以我们建立usernamePasswordAuthenticationProvider和mobileCodeAuthenticationProvider两个provider来处理登录请求。
UsernamePasswordAuthenticationToken是spring security内置的token对象。我们就不再定义了,需李喊芦要定义一个MobileCodeAuthenticationToken在包com.biboheart.demo.user.security.tokens中
创建一个过滤器,替换掉原来的UsernamePasswordAuthenticationFilter过滤器。定义为BhAuthenticationFilter 继承至 AbstractAuthenticationProcessingFilter。
对于登录请求,我们接收三个参数。分别是:username,password,autype。autype参数用于告知登录类型:默认为用户名密码方式,mobileCode为手机号验证码方式。如果是mobileCode方式,那么username对应的是手机号,password对哪带应的是验证码。
通过SecurityConfiguration中的.addFilterAt(bhAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class)插入过滤器。
用户名密码认证的实现
手机号验证码认证的实现
更多的认证方式照着扩展就可以了。
用户登录需要界面,未登录时要跳转到登录界面,登录成功后要跳转到首页。
页面跳转控制器
首页控制器
index.html
hello.html
login.html
在pom.xml中引入组件
首页是允许访问的,点击“这里”的链接。就进入登录页面。
选择手机号验证码登录:
可以点击注销,再试试用户名密码登录。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)