当前位置: 首页 > news >正文

SpringSecurity6-oauth2-三方gitee授权-授权码模式

文章目录

      • 1.登录gitee,创建一个第三方登录的应用
      • 2.引入pom
      • 3.application.yml
      • 4.配置文件
      • 5.测试

1.登录gitee,创建一个第三方登录的应用

首先找到设置中的第三方应用:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.引入pom

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-oauth2-client</artifactId></dependency>

3.application.yml

spring:security:oauth2:client:registration:gitee:#应用idclient-id: 创建的应用中获取xxxxxxxxxxxxx#应用密钥client-secret: 创建应用中获取xxxxxxxxx#应用名称client-name: MyLinging#授权后重定向urlredirect-uri: http://127.0.0.1:8080/login/oauth2/code/gitee#授权码模式authorization-grant-type: authorization_codeprovider:gitee:# Gitee 的授权 URLauthorization-uri: https://gitee.com/oauth/authorize# token获取urltoken-uri: https://gitee.com/oauth/token# 用户信息获取urluser-info-uri: https://gitee.com/api/v5/user# 码云用户信息中的用户名字段 这里就取id作为唯一标志user-name-attribute: id

4.配置文件

httpSecurity.oauth2Login(cus -> cus//登录认证入口(前端发起请求的路径)//例如:http://127.0.0.1:8080/oauth2/authorization/gitee.authorizationEndpoint(authorization -> authorization.baseUri("/oauth2/authorization"))//用户确认后,第三方服务器回调的路径.redirectionEndpoint(redirection -> redirection.baseUri("/login/oauth2/code/*"))// 处理第三方返回的用户信息.userInfoEndpoint(userInfo -> userInfo.userService(new DefaultOAuth2UserService()))// 三方认证成功后重定向的地址,此处本机测试,搭建前后端分离项目,授权后重定向前端首页地址,仅后端测试可注释掉不配置.defaultSuccessUrl("http://127.0.0.1:8081")
)

5.测试

在这里插入图片描述

  1. 点击gitee登录,访问登录授权的入口:http://127.0.0.1:8080/oauth2/authorization/gitee

  2. 访问后会重定向到gitee授权页面:https://gitee.com/oauth/authorize?response_type=code&client_id=xxxxxx&state=oihEUItlxWQEEsnz2in1VSo9w3Za7WUcwcShzQ1_IRg%3D&redirect_uri=http://127.0.0.1:8080/login/oauth2/code/gitee
    在这里插入图片描述

  3. 当用户点击同意授权时,会向gitee授权服务器请求授权获取code:https://gitee.com/oauth/authorize
    在这里插入图片描述

  4. 请求授权完后,回调到:http://127.0.0.1:8080/login/oauth2/code/gitee?code=xxxxxxxxxxx&state=oihEUItlxWQEEsnz2in1VSo9w3Za7WUcwcShzQ1_IRg%3D
    然后由springsecurity的OAuth2LoginAuthenticationFilter进行拦截,由OAuth2LoginAuthenticationProviderOAuth2AuthorizationCodeAuthenticationProvider根据code向gitee进行认证拿到token,然后根据token由DefaultOAuth2UserService的loadUser向gitee获取用户的信息,并封装DefaultOAuth2User对象保存在SecurityContextHolder中,然后认证完就重定向到首页。这里设置了重定向地址是http://127.0.0.1:8081/,如下:
    在这里插入图片描述

http://www.lryc.cn/news/576719.html

相关文章:

  • 加密货币:USDC和比特币有什么区别?
  • web3区块链-ETH以太坊
  • 代理模式 - Flutter中的智能替身,掌控对象访问的每一道关卡!
  • aws(学习笔记第四十八课) appsync-graphql-dynamodb
  • Docker错误问题解决方法
  • Keil MDK 的 STM32 开发问题:重定向 printf 函数效果不生效(Keil MDK 中标准库未正确链接)
  • 基于springboot+vue的数字科技风险报告管理系统
  • 现代 JavaScript (ES6+) 入门到实战(一):告别 var!拥抱 let 与 const,彻底搞懂作用域
  • 领域驱动设计(DDD)【23】之泛化:从概念到实践
  • 网络缓冲区
  • DOP数据开放平台(真实线上项目)
  • 马斯克的 Neuralink:当意念突破肉体的边界,未来已来
  • Word之电子章制作——1
  • 【编译原理】期末
  • 华为云Flexus+DeepSeek征文|利用华为云一键部署的Dify平台构建高效智能电商客服系统实战
  • Youtube双塔模型
  • C++共享型智能指针std::shared_ptr使用介绍
  • cocos creator 3.8 - 精品源码 - 挪车超人(挪车消消乐)
  • Neo4j无法建立到 localhost:7474 服务器的连接出现404错误
  • Linux基本命令篇 —— less命令
  • springboot+Vue驾校管理系统
  • matplotlib 绘制水平柱状图
  • 基于LQR控制器的六自由度四旋翼无人机模型simulink建模与仿真
  • 使用deepseek制作“喝什么奶茶”随机抽签小网页
  • 我的世界模组开发进阶教程——机械动力的数据生成(2)
  • 【C++进阶】--- 继承
  • 基于WOA鲸鱼优化算法的圆柱体容器最大体积优化设计matlab仿真
  • 人大金仓数据库jdbc连接jar包kingbase8-8.6.0.jar驱动包最新版下载(不需要积分)
  • C++泛型编程2 - 类模板
  • C# 委托(为委托添加方法和从委托移除方法)