【Spring Security OAuth2】- App认证框架- 重构注册逻辑

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO

联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬

学习必须往深处挖,挖的越深,基础越扎实! 

重构注册逻辑

在浏览器中的第三方登录回顾:

  1. social 在拿到用户信息之后
  2. 查询数据库没有绑定的用户会跳转到默认的/signUp路径
  3. 提供了一个我们自己的注册页面,拿到用户提交的注册信息,调用social数据库服务,把关联信息写入数据库中。完成注册
  4. 再次登录,数据库中有用户信息,则登录成功

问题:

  1. 上面这个流程问题所在就是 第三方的信息存放在了 session 中;
  2. 还有一个问题,就是第2步会302.需要客户端信息判定并跳转到登录页

所以现在开始改造,改造方案:

  1. 流程完成后,更改跳转的页面到app指定页面,
  2. 根据设备id,我们把信息存放在redis中
  3. 用户注册完成后,提交,再把第三方信息拿出来,合并完成注册

改造

注意: 在改造测试之前把默认注册用户的功能关闭掉
也就是 com.example.demo.security.DemoConnectionSignUp 类

之前的注册地址是在

    cn.mrcode.imooc.springsecurity.securitycore.social.SpringSocialConfig#imoocSocialSecurityConfig
    
    @Bean
    public SpringSocialConfigurer imoocSocialSecurityConfig() {
        // 默认配置类,进行组件的组装
        // 包括了过滤器SocialAuthenticationFilter 添加到security过滤链中
        MySpringSocialConfigurer springSocialConfigurer = new MySpringSocialConfigurer();
        springSocialConfigurer.signupUrl(securityProperties.getBrowser().getSignUpUrl());
        springSocialConfigurer.setSocialAuthenticationFilterPostProcessor(socialAuthenticationFilterPostProcessor);
        return springSocialConfigurer;
    }

中设置的,那么先把这个地址更改掉,由于这里在浏览器环境下工作得很好,不要直接修改这里。使用一个技巧替换掉

    package cn.mrcode.imooc.springsecurity.securityapp;
    
    import cn.mrcode.imooc.springsecurity.securitycore.social.SpringSocialConfig;
    import org.springframework.beans.BeansException;
    import org.springframework.beans.factory.config.BeanPostProcessor;
    import org.springframework.social.security.SpringSocialConfigurer;
    import org.springframework.stereotype.Component;
    
    /**
     * @author : zhuqiang
     * @version : V1.0
     * @date : 2023/8/8 23:49
     */
    @Component
    public class SpringSocialConfigurerPostProcessor implements BeanPostProcessor {
        // 任何bean初始化回调之前
        @Override
        public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
            return bean;
        }
    
        //任何bean初始化回调之后
        // 在这里把之前浏览器中配置的注册地址更改为app中的处理控制器
        @Override
        public Objec
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值