javascript
Spring Security——OAuth 2.0登录——Google,GitHub,Facebook和Okta
基本概念
OAuth 2.0登錄:OAuth 2.0登錄功能為應(yīng)用程序提供了使用戶能夠通過使用其在OAuth 2.0提供程序(例如GitHub)或OpenID Connect 1.0提供程序(例如Google)上的現(xiàn)有帳戶登錄該應(yīng)用程序的功能。
OAuth 2.0登錄是通過使用OAuth 2.0授權(quán)框架和OpenID Connect Core 1.0中指定的授權(quán)代碼授予來實(shí)現(xiàn)的。
官方文檔
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登錄帶來了完整的自動配置功能。
最初設(shè)定
要使用Google的OAuth 2.0身份驗(yàn)證系統(tǒng)進(jìn)行登錄,您必須在Google API控制臺中設(shè)置一個項(xiàng)目以獲得OAuth 2.0憑據(jù)。
Google的OAuth 2.0身份驗(yàn)證實(shí)現(xiàn)符合OpenID Connect 1.0規(guī)范,并且已通過OpenID認(rèn)證。?
請按照“設(shè)置OAuth 2.0”部分開始的OpenID Connect頁面上的說明進(jìn)行操作。
完成“獲取OAuth 2.0憑據(jù)”說明后,您應(yīng)該擁有一個新的OAuth客戶端,其憑據(jù)由客戶端ID和客戶端密鑰組成。
設(shè)置重定向URI
重定向URI是最終用戶的用戶代理在通過Google身份驗(yàn)證并授予對“同意”頁面上的OAuth客戶端(在上一步中創(chuàng)建)的訪問權(quán)限后,將重定向到應(yīng)用程序中的路徑。
在“設(shè)置重定向URI”子部分中,確保將“?授權(quán)重定向URI”字段設(shè)置為http://localhost:8080/login/oauth2/code/google。
默認(rèn)重定向URI模板為{baseUrl}/login/oauth2/code/{registrationId}。該registrationId是用于唯一標(biāo)識符ClientRegistration。?
如果OAuth客戶端在代理服務(wù)器后面運(yùn)行,建議檢查“?代理服務(wù)器配置”以確保正確配置了應(yīng)用程序。此外,請參閱支持URI模板變量的redirect-uri。?
配置application.yml
現(xiàn)在,您有了Google的新OAuth客戶端,您需要配置應(yīng)用程序以將OAuth客戶端用于身份驗(yàn)證流程。為此:
轉(zhuǎn)到application.yml并設(shè)置以下配置:
spring:security:oauth2:client:registration: google: client-id: google-client-idclient-secret: google-client-secretOAuth2客戶端屬性
spring.security.oauth2.client.registration?是OAuth客戶端屬性的基本屬性前綴。?
基本屬性前綴后面是ClientRegistration的ID?,例如google。
將client-id和client-secret屬性中的值替換為您之前創(chuàng)建的OAuth 2.0憑據(jù)。
啟動應(yīng)用程序
啟動Spring Boot 2.x示例并轉(zhuǎn)到http://localhost:8080。然后,您將被重定向到默認(rèn)的自動生成的登錄頁面,該頁面顯示Google的鏈接。
單擊Google鏈接,然后您將重定向到Google進(jìn)行身份驗(yàn)證。
在使用您的Google帳戶憑據(jù)進(jìn)行身份驗(yàn)證后,下一頁是“同意”屏幕。“同意”屏幕要求您允許或拒絕訪問您之前創(chuàng)建的OAuth客戶端。點(diǎn)擊允許以授權(quán)OAuth客戶端訪問您的電子郵件地址和基本個人資料信息。
此時(shí),OAuth客戶端將從UserInfo端點(diǎn)檢索您的電子郵件地址和基本個人資料信息,并建立經(jīng)過身份驗(yàn)證的會話。
參考文章
?
總結(jié)
以上是生活随笔為你收集整理的Spring Security——OAuth 2.0登录——Google,GitHub,Facebook和Okta的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring Security——简单第
- 下一篇: Spring Security——org