【Spring Security OAuth2】- Spring Social第三方登录 - QQ登录中

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

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

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

QQ登录

上一章节完成了 ServiceProvider的功能,这一节完成应用内部的需要做的一些功能

注意看这个官网文档: Index of /spring-social/docs/1.1.x
由于在spring-boot-autoconfigure-2.0.4.RELEASE.jar没有对 social的自动配置了
所以我搞这节课的连通流程花费了5个小时,最后认证查看官网文档的说明才跑起来

实现 ConnectionFactory

    package cn.mrcode.imooc.springsecurity.securitycore.qq.connet;
    
    import cn.mrcode.imooc.springsecurity.securitycore.qq.api.QQ;
    import org.springframework.social.connect.Connection;
    import org.springframework.social.connect.support.OAuth2ConnectionFactory;
    import org.springframework.social.oauth2.GenericOAuth2ConnectionFactory;
    
    /**
     * qq
     * @author : zhuqiang
     * @version : V1.0
     * @date : 2023/8/6 9:02
     * @see GenericOAuth2ConnectionFactory 模仿这个来写
     */
    public class QQOAuth2ConnectionFactory extends OAuth2ConnectionFactory<QQ> {
        /**
         * 唯一的构造函数,需要
         * Create a {@link OAuth2ConnectionFactory}.
         * @param providerId 服务商id;自定义字符串;也是后面添加social的过滤,过滤器帮我们拦截的url其中的某一段地址
         *                   on} interface.
         */
        public QQOAuth2ConnectionFactory(String providerId, String appid, String secret) {
          // 传递进来是因为使用该服务的地方才知道  这些参数是什么
            /**
             * serviceProvider 用于执行授权流和获取本机服务API实例的ServiceProvider模型
             * apiAdapter      适配器,用于将不同服务提供商的个性化用户信息映射到 {@link Connection}
             */
            super(providerId, new QQServiceProvider(appid, secret), new QQApiAdapter());
        }
    }

这里需要提供一个 ApiAdapter

QQApiAdapter

    package cn.mrcode.imooc.springsecurity.securitycore.qq.connet;
    
    import cn.mrcode.imooc.springsecurity.securitycore.qq.api.QQ;
    import cn.mrcode.imooc.springsecurity.securitycore.qq.api.QQUserInfo;
    import org.springframework.social.connect.ApiAdapter;
    import org.springframework.social.connect.Connection;
    import org.springframework.social.connect.ConnectionValues;
    import org.springframework.social.connect.UserProfile;
    
    /**
     * 适配器,用于将不同服务提供商的个性化用户信息映射到 {@link Connection}
     * @author : zhuqiang
     * @version : V1.0
     * @date : 2023/8/6 9:10
     */
    public class QQApiAdapter implements ApiAdapter<QQ> {
        @Override
        public boolean test(QQ api) {
            // 测试服务是否可用
            return true;
        }
    
        @Override
        public void
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值