基本概念

OAuth 2.0登录:OAuth 2.0登录功能为应用程序提供了使用户能够通过使用其在OAuth 2.0提供程序(例如GitHub)或OpenID Connect 1.0提供程序(例如Google)上的现有帐户登录该应用程序的功能。

OAuth 2.0登录是通过使用OAuth 2.0授权框架和OpenID Connect Core 1.0中指定的授权代码授予来实现的。

官方文档

https://docs.spring.io/spring-security/site/docs/5.2.3.RELEASE/reference/html5/#oauth2login-sample-boot-application

Maven

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

DEMO

Spring Boot 2.x为OAuth 2.0登录带来了完整的自动配置功能。

最初设定

要使用Google的OAuth 2.0身份验证系统进行登录,您必须在Google API控制台中设置一个项目以获得OAuth 2.0凭据。

Google的OAuth 2.0身份验证实现符合OpenID Connect 1.0规范,并且已通过OpenID认证。

请按照“设置OAuth 2.0”部分开始的OpenID Connect页面上的说明进行操作。

完成“获取OAuth 2.0凭据”说明后,您应该拥有一个新的OAuth客户端,其凭据由客户端ID和客户端密钥组成。

设置重定向URI

重定向URI是最终用户的用户代理在通过Google身份验证并授予对“同意”页面上的OAuth客户端(在上一步中创建)的访问权限后,将重定向到应用程序中的路径。

在“设置重定向URI”子部分中,确保将“ 授权重定向URI”字段设置为http://localhost:8080/login/oauth2/code/google

默认重定向URI模板为{baseUrl}/login/oauth2/code/{registrationId}。该registrationId是用于唯一标识符ClientRegistration。

如果OAuth客户端在代理服务器后面运行,建议检查“ 代理服务器配置”以确保正确配置了应用程序。此外,请参阅支持URI模板变量的redirect-uri

配置application.yml

现在,您有了Google的新OAuth客户端,您需要配置应用程序以将OAuth客户端用于身份验证流程。为此:

转到application.yml并设置以下配置:

spring:security:oauth2:client:registration:   google:   client-id: google-client-idclient-secret: google-client-secret

OAuth2客户端属性

spring.security.oauth2.client.registration 是OAuth客户端属性的基本属性前缀。

基本属性前缀后面是ClientRegistration的ID ,例如google。

client-idclient-secret属性中的值替换为您之前创建的OAuth 2.0凭据。

启动应用程序

启动Spring Boot 2.x示例并转到http://localhost:8080。然后,您将被重定向到默认的自动生成的登录页面,该页面显示Google的链接。

单击Google链接,然后您将重定向到Google进行身份验证。

在使用您的Google帐户凭据进行身份验证后,下一页是“同意”屏幕。“同意”屏幕要求您允许或拒绝访问您之前创建的OAuth客户端。点击允许以授权OAuth客户端访问您的电子邮件地址和基本个人资料信息。

此时,OAuth客户端将从UserInfo端点检索您的电子邮件地址和基本个人资料信息,并建立经过身份验证的会话。

参考文章

Spring Security——OAuth 2.0登录——Google,GitHub,Facebook和Okta相关推荐

  1. 单点登录(shiro与Spring Security OAuth 2.0的集成)

    单点登录(shiro与Spring Security OAuth 2.0的集成) shiro项目采用ruoyi,OAuth采用pig 若依:https://gitee.com/y_project/Ru ...

  2. Spring Security——OAuth 2.0 Client自动配置源代码分析

    基本概念 OAuth2.0:OAuth2.0是OAuth协议的延续版本,但不向前兼容OAuth 1.0(即完全废止了OAuth1.0). OAuth 2.0关注客户端开发者的简易性.要么通过组织在资源 ...

  3. java oauth2登录以及权限_Spring Cloud集成Security OAuth 2.0权限鉴权验证示例

    Spring Cloud集成Security OAuth 2.0权限鉴权验证示例 一.背景说明 目前市场上微服务之间涉及到相互调用的问题,在这个过程中为了验证安全性,需要采用鉴权方式进行管理.目前主流 ...

  4. Spring Boot OAuth 2.0 客户端

    在上一篇<OAuth 2.0 授权码请求>中我们已经可以获取到access_token了,本节将使用客户端来访问远程资源 配置资源服务器 授权服务器负责生成并发放访问令牌(access_t ...

  5. java oauth2.0_教程:如何实现Java OAuth 2.0以使用GitHub和Google登录

    java oauth2.0 将Google和GitHub OAuth登录添加到Java应用程序的指南 我们添加到Takipi的最新功能之一是3rd party登录. 如果您像我一样懒惰,那么我想您也希 ...

  6. 教程:如何实现Java OAuth 2.0以使用GitHub和Google登录

    将Google和GitHub OAuth登录添加到Java应用程序的指南 我们添加到Takipi的最新功能之一是3rd party登录. 如果您像我一样懒惰,那么我想您也希望跳过填写表单和输入新密码的 ...

  7. Spring Security OAuth2 SSO 单点登录

    基于 Spring Security OAuth2 SSO 单点登录系统 SSO简介 单点登录(英语:Single sign-on,缩写为 SSO),又译为单一签入,一种对于许多相互关连,但是又是各自 ...

  8. 使用Spring Security OAuth2实现单点登录(SSO)系统

    一.单点登录SSO介绍   目前每家企业或者平台都存在不止一套系统,由于历史原因每套系统采购于不同厂商,所以系统间都是相互独立的,都有自己的用户鉴权认证体系,当用户进行登录系统时,不得不记住每套系统的 ...

  9. Spring Security OAuth 2开发者指南译

    Spring Security OAuth 2开发者指南译 介绍 这是用户指南的支持OAuth 2.0.对于OAuth 1.0,一切都是不同的,所以看到它的用户指南. 本用户指南分为两部分,第一部分为 ...

最新文章

  1. 了解jvm对编程的帮助_这是您对社会责任编程的了解
  2. WKWebView的使用
  3. exp ORA-01455: converting column overflows integer datatype
  4. dubbo启动时检查服务
  5. js学习总结----弹性势能动画之抛物线运动
  6. oracle底层执行顺序,select语句结构与执行顺序-Oracle
  7. 深入掌握JMS(二):一个JMS例子
  8. 获取线程名称 java 1615387415
  9. Bootstrap CSS 编码规范之简写形式的属性声明
  10. .netframewor划时代的系统:纪念Vista发布5周年
  11. java学习之—链表(3)
  12. C#使用NLOG System.TypeInitializationException,类型初始值设定项引发异常
  13. cydia多开微信_微信及陌陌多开教程:多开+分别推送消息+一键隐藏方法
  14. 基于Java Web的图书管理系统
  15. 智能云仓库存管理 v1.2.0
  16. mac系统修改idea运行内存
  17. 车载以太网和工业以太网区别
  18. Vue history模式添加前缀 Nginx配置
  19. 适合国人的6款免费远程桌面工具,适用于电脑和手机
  20. 微头条快速赚钱变现方法,一天可赚100元

热门文章

  1. 怎么看android sdk 文档
  2. AutoScan-收集监视及办理器械
  3. android 不可点击状态,Android系统.如何使用setClickable同时设置所有按钮可点击或不可点击?...
  4. html加载出来图片乱掉,HTML基础 img alt 图片加载失败时,出现替代文本
  5. python死锁案例_python避免死锁方法实例分析
  6. python zipfile_Python中的zipfile模块使用详解
  7. 爬虫模拟登陆手机验证码_网络爬虫干货总结,这次比较全面!
  8. java可变长字符串_具有可变长度的scala字符串插值
  9. html点击子元素隐藏div,jq 点击div,显示当前div内容,隐藏其他div的子元素
  10. html请求接口_python接口自动化测试 - 2.Django开发接口