微服務火熱,前後端分離,oauth2 是我們介面呼叫認證的首選。springboot 天然整合 oauth2,使用非常方便,簡單記錄下,嚐嚐鮮。
一、啥是OAuth2OAuth(開放授權)是一個開放標準,允許使用者授權第三方移動應用訪問他們儲存在另外的服務提供者上的資訊,而不需要將使用者名稱和密碼提供給第三方移動應用或分享他們資料的所有內容。
二、OAuth2的四種模式OAuth2標準為了應對不同的場景,設計了四種不同的標準模式,
密碼模式:第一方單頁應用與第一方原生App授權碼模式:第三方Web伺服器端應用與第三方原生App簡化模式:第三方單頁面應用客戶端模式:沒有使用者參與的,完全信任的伺服器端服務其中密碼模式和授權碼模式最為常用。
三、嘗試實踐1、新建boot專案
idea 新建 springboot專案,maven 引入pom依賴,推薦使用spring-cloud-starter-oauth2和spring-cloud-starter-security。
專案結構目錄如下,
2、oauth2核心config配置
這一步是成功的關鍵,主要三個config:認證服務配置、資源服務配置和web安全配置。
1)AuthServerConfig,繼承 AuthorizationServerConfigurerAdapter
2)ResourceServerConfig,繼承 ResourceServerConfigurerAdapter (這裡簡單起見,我們都做預設實現)
3)WebSecurityConfig,繼承 WebSecurityConfigurerAdapter
3、測試類編寫
一切從簡,前面三個配置類寫好後,我們寫個簡單的測試controller。
4、postman測試
1)直接請求controller地址,返回沒有授權
2)獲取token
請求地址:http://appid:secret@localhost:7000/oauth/token?grant_type=password&username=zhangsan&password=123&scop=all
3)帶token引數訪問介面地址,訪問成功。
這樣的話,一個簡單的oauth2授權碼模式就ok了。