Spring Security源码分析三:Spring Social实现QQ社交登录

本文详细介绍了如何使用Spring Social实现QQ社交登录,包括OAuth2.0认证流程,Spring Social的配置,如QQConnectionFactory、QQAuthProvider等关键类的使用,以及自定义登录和注册连接的配置。通过阅读,你可以了解到如何将社交登录集成到Spring Security应用中。
摘要由CSDN通过智能技术生成

社交登录又称作社会化登录(Social Login),是指网站的用户可以使用腾讯QQ、人人网、开心网、新浪微博、搜狐微博、腾讯微博、淘宝、豆瓣、MSN、Google等社会化媒体账号登录该网站。

OAuth2.0的认证流程示意图

https://i-blog.csdnimg.cn/blog_migrate/55873ba1a63d7c10bc0eddece75ee7d2.png

  1. 请求第三方应用
  2. 第三方应用将用户请求导向服务提供商
  3. 用户同意授权
  4. 服务提供商返回code
  5. client根据code去服务提供商换取令牌
  6. 返回令牌
  7. 获取用户信息

在标准的OAuth2协议中,1-6步都是固定,只有最后一步,不通的服务提供商返回的用户信息是不同的。Spring Social已经为我们封装好了1-6步。

使用Spring Social

准备工作

  1. qq互联申请个人开发者,获得appId和appKey或者使用 SpringForAll贡献出来的
  2. 配置本地host 添加 127.0.0.1 www.ictgu.cn
  3. 数据库执行以下sql
create table UserConnection (userId varchar(255) not null,
    providerId varchar(255) not null,
    providerUserId varchar(255),
    rank int not null,
    displayName varchar(255),
    profileUrl varchar(512),
    imageUrl varchar(512),
    accessToken varchar(512) not null,
    secret varchar(512),
    refreshToken varchar(512),
    expireTime bigint,
    primary key (userId, providerId, providerUserId));
create unique index UserConnectionRank on UserConnection(userId, providerId, rank);
  1. 项目端口设置为80端口

引入Spring Social 模块

模块 描述
spring-social-core 提供社交连接框架和OAuth 客户端支持
spring-social-config 提供Java 配置
spring-social-security 社交安全的一些支持
spring-social-web 管理web应用程序的连接
!--spring-social 相关-->
        <dependency>
            <groupId>org.springframework.social</groupId>
            <artifactId>spring-social-config</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.social</groupId>
            <artifactId>spring-social-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.social</groupId>
            <artifactId>spring-social-security
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值