javascript
Spring Security——OAuth 2.0登录——Google,GitHub,Facebook和Okta
基本概念
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-secretOAuth2客戶端屬性
spring.security.oauth2.client.registration?是OAuth客戶端屬性的基本屬性前綴。?
基本屬性前綴后面是ClientRegistration的ID?,例如google。
將client-id和client-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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring Security——简单第
- 下一篇: Spring Security——org