0


Spring Boot 实现微信、QQ 绑定登录

文章目录

在这里插入图片描述

🎉欢迎来到SpringBoot框架学习专栏~


  • ☆* o(≧▽≦)o *☆嗨~我是IT·陈寒🍹
  • ✨博客主页:IT·陈寒的博客
  • 🎈该系列文章专栏:SpringBoot
  • 📜其他专栏:Java学习路线 Java面试技巧 Java实战项目 AIGC人工智能 数据结构学习
  • 🍹文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏
  • 📜 欢迎大家关注! ❤️

在现代应用程序中,第三方登录(如微信和QQ登录)已成为提高用户注册和登录体验的重要功能。本文将介绍如何使用Spring Boot实现微信和QQ的绑定登录功能。

在这里插入图片描述

1. 项目环境

我们将使用以下技术栈来实现这个功能:

  • Spring Boot
  • Spring Security
  • OAuth2 客户端库
  • 微信和QQ的开放平台

2. 创建Spring Boot项目

首先,使用Spring Initializr创建一个新的Spring Boot项目,选择以下依赖:

  • Spring Web
  • Spring Security
  • OAuth2 Client

3. 配置微信和QQ开发平台

在微信和QQ开放平台注册应用,获取应用的AppID和AppSecret。记录下这些信息,因为它们将在我们的Spring Boot应用中使用。

4. 配置Spring Security

application.yml

application.properties

中配置微信和QQ的OAuth2客户端信息:

spring:security:oauth2:client:registration:qq:client-id: your-qq-app-id
            client-secret: your-qq-app-secret
            client-name: QQ
            provider: qq
            redirect-uri:"{baseUrl}/login/oauth2/code/qq"authorization-grant-type: authorization_code
            scope: get_user_info
        provider:qq:authorization-uri: https://graph.qq.com/oauth2.0/authorize
            token-uri: https://graph.qq.com/oauth2.0/token
            user-info-uri: https://graph.qq.com/user/get_user_info
            user-name-attribute: openid

          wechat:client-id: your-wechat-app-id
            client-secret: your-wechat-app-secret
            client-name: WeChat
            redirect-uri:"{baseUrl}/login/oauth2/code/wechat"authorization-grant-type: authorization_code
            scope: snsapi_login
        provider:wechat:authorization-uri: https://open.weixin.qq.com/connect/qrconnect
            token-uri: https://api.weixin.qq.com/sns/oauth2/access_token
            user-info-uri: https://api.weixin.qq.com/sns/userinfo
            user-name-attribute: openid

5. 配置Spring Security

创建一个Spring Security配置类,配置OAuth2登录:

@Configuration@EnableWebSecuritypublicclassSecurityConfigextendsWebSecurityConfigurerAdapter{@Overrideprotectedvoidconfigure(HttpSecurity http)throwsException{
        http
            .authorizeRequests().antMatchers("/","/login**","/css/**","/js/**","/images/**").permitAll().anyRequest().authenticated().and().oauth2Login().loginPage("/login").defaultSuccessUrl("/home").failureUrl("/login?error=true").userInfoEndpoint().userService(oauth2UserService());}@BeanpublicOAuth2UserService<OAuth2UserRequest,OAuth2User>oauth2UserService(){DefaultOAuth2UserService delegate =newDefaultOAuth2UserService();return request ->{OAuth2User oauth2User = delegate.loadUser(request);// 自定义用户信息处理return oauth2User;};}}

6. 创建登录和主页控制器

创建控制器来处理登录和主页的请求:

@ControllerpublicclassMainController{@GetMapping("/login")publicStringlogin(){return"login";}@GetMapping("/home")publicStringhome(Model model,@AuthenticationPrincipalOAuth2User oauth2User){
        model.addAttribute("name", oauth2User.getAttribute("name"));return"home";}}

7. 创建视图

创建登录页(

src/main/resources/templates/login.html

):

<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>Login</title></head><body><h1>Login with</h1><ahref="/oauth2/authorization/qq">QQ</a><ahref="/oauth2/authorization/wechat">WeChat</a></body></html>

创建主页(

src/main/resources/templates/home.html

):

<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>Home</title></head><body><h1>Welcome, ${name}</h1></body></html>

8. 运行项目

启动Spring Boot应用,访问

http://localhost:8080/login

,选择QQ或微信登录,即可实现第三方登录功能。

9. 处理用户信息

在实际应用中,我们可能需要将第三方用户信息与本地用户进行绑定。可以在

OAuth2UserService

中进行处理,将第三方用户信息保存到本地数据库,并进行用户绑定。

@BeanpublicOAuth2UserService<OAuth2UserRequest,OAuth2User>oauth2UserService(){DefaultOAuth2UserService delegate =newDefaultOAuth2UserService();return request ->{OAuth2User oauth2User = delegate.loadUser(request);String clientRegistrationId = request.getClientRegistration().getRegistrationId();// 根据不同的登录方式处理用户信息if("qq".equals(clientRegistrationId)){String openid = oauth2User.getAttribute("openid");// 根据openid处理用户信息}elseif("wechat".equals(clientRegistrationId)){String openid = oauth2User.getAttribute("openid");// 根据openid处理用户信息}return oauth2User;};}

结论

通过Spring Boot整合微信和QQ的OAuth2登录,我们可以实现一个灵活、强大的第三方登录系统,提高用户体验和系统安全性。在实际应用中,还可以根据具体需求进行更多的定制和扩展,如处理用户绑定、实现单点登录等。希望本文能够帮助你快速实现微信和QQ的绑定登录功能。


🧸结尾 ❤️ 感谢您的支持和鼓励! 😊🙏
📜您可能感兴趣的内容:

  • 【Java面试技巧】Java面试八股文 - 掌握面试必备知识(目录篇)
  • 【Java学习路线】2023年完整版Java学习路线图
  • 【AIGC人工智能】Chat GPT是什么,初学者怎么使用Chat GPT,需要注意些什么
  • 【Java实战项目】SpringBoot+SSM实战:打造高效便捷的企业级Java外卖订购系统
  • 【数据结构学习】从零起步:学习数据结构的完整路径

在这里插入图片描述


本文转载自: https://blog.csdn.net/qq_43546721/article/details/139905454
版权归原作者 IT·陈寒 所有, 如有侵权,请联系我们删除。

“Spring Boot 实现微信、QQ 绑定登录”的评论:

还没有评论