商城项目(2.0版本) day13

本文档详细介绍了业务流程中用户登录状态的判断及其设计演进,包括从session共享到token再到认证中心的实现。在代码实现部分,讲解了如何整合认证中心,设置拦截器对不同类型的请求进行权限控制,如允许未登录访问购物车功能,以及通过注解区分不同方法的拦截需求。此外,还展示了如何配置拦截器确保特定方法的访问权限。
摘要由CSDN通过智能技术生成

Passport用户认证

一、设计

1.1 业务流程
  1. 在购物车之前的功能,不需要对用户登录进行判定
  2. 在购物车之后的功能,必须要求用户登录的判定通过
  3. 在购物车功能中,必须对用户登录进行判定,但是判定失败也可以继续使用(程序执行另一个分支)
1.2 登入的三种设计的演变
  1. session共享

在这里插入图片描述

  1. token
    在这里插入图片描述

  2. 认证中心

1.3 认证中心的设计

在这里插入图片描述
1 给用户颁发通行证(token)
2 验证其他业务功能接收token(用户访问所携带的)的真伪

二、代码的实现

2.1 认证中心的整合

1 引入认证中心的静态资源
在这里插入图片描述
2 在search模块的页面点击登录链接上加入认证中心的url
在这里插入图片描述
3 增加一个测试的结算功能(真正的结算功能在dd模块)
在这里插入图片描述
在这里插入图片描述
4 加入拦截器(在web-util中加入拦截器,让所有请求到web的请求都被拦截器拦截)
在这里插入图片描述
5 加入拦截器
在这里插入图片描述
6 加入拦截器的整合类


@Configuration
public class WebMvcConfiguration extends WebMvcConfigurerAdapter {
    @Autowired
    AuthInterceptor authInterceptor;
    @Override
    public void addInterceptors(InterceptorRegistry registry){
        registry.addInterceptor(authInterceptor).addPathPatterns("/**");
        super.addInterceptors(registry);
    }
}


7 有的方法走拦截器,有的方法不走拦截器
在这里插入图片描述
除了可以通过web模块是否扫描拦截器来决定拦截器的使用之外
还可以通过注解的方式来标识具体的方法是否需要通过拦截器
@LoginRequired

第一类方法:不需要进行拦截的方法(没有拦截器注解),直接放行,不加@LoginRequired
第二类方法:需要拦截但是拦截校验失败(用户没登陆或者登录过期了)也可以继续访问的方法,比如说购物车中的所有方法@LoginRequired(loginSuccess=false)
第三类方法:需要拦截,并且拦截校验一定要通过(用户登录成功了)才能访问的方@LoginRequired(loginSuccess=true)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值