# spring-social-parent **Repository Path**: study-ly/spring-social-parent ## Basic Information - **Project Name**: spring-social-parent - **Description**: 1、学习 spring social 的用法 2、使用 spring social 完成常用社交网站的登录,比如:QQ和微信等 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 9 - **Created**: 2023-10-16 - **Last Updated**: 2023-10-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # spring-social-parent #### 项目介绍 1、学习 spring social 的用法 2、使用 spring social 完成常用社交网站的登录,比如:QQ和微信等 3、feature/qq 实现 QQ 登录 4、feature/weixin 实现 微信 登录 5、feature/baidu 实现 百度 登录 6、feature/github 实现 github 登录 7、master 分支为 QQ 和 微信 和 百度 和 github 登录 8、百度登录和github登录是没有问题的,这个测试过 9、QQ和微信登录没有帐号没有测试,应该是没有问题的 #### [开发一个第三方登录的步骤](https://docs.spring.io/spring-social/docs/1.1.4.RELEASE/reference/htmlsingle/#section_implementing) ![开发一个新的第三方登录步骤](https://images.gitee.com/uploads/images/2018/0927/162245_85c8ad29_369738.png "support_new_service_provider.png") #### 和 spring security 整合 1、我们自己写好spring social 相关的各种组件后,需要继承SocialAutoConfigurerAdapter类进行配置 2、将spring social逻辑加入到spring security的过滤器链中,在spring security的配置中应用SpringSocialConfigurer这个类,这个类中的SocialAuthenticationFilter实现拦截,默认拦截 /auth 开头的请求。 3、需要实现SocialUserDetailsService接口,返回业务系统中的用户信息 4、第一次使用第三方登陆时,如果和业务系统中的用户进行绑定,此时业务系统中还没有用户编号ProviderSignInUtils可以获取到第三方登陆的Connection信息,配置JdbcUsersConnectionRepository将业务系统的用户编号(userId)和用户在服务提供商(providerId)上的唯一编号(providerUserId)对应起来,在JdbcUsersConnectionRepository下有一张UserConnection表来完成这个关系的映射。 5、实现ConnectionSignUp接口,可以在用户第一次使用社交登录时给用户在业务系统中创建一个默认的用户。 6、ConnectController可以实现业务系统中的用户和第三方社交用户的绑定和解绑。