前面的例子和配置都是從頭開始申請受權碼和令牌,如今來看一下如何根據獲取令牌時,回參中的 refresh_token 來刷新令牌。如今在項目中配置的是內存模式的默認用戶名密碼,第一步先改爲數據庫查詢的方式,具體過程參考前面的文章便可,來看security配置類:html
而後修改受權服務配置類,在 endpoints 中配置userDetailsService:git
修改爲數據庫方式也是爲了建立userDetailsService對象,刷新令牌時會根據此對象對用戶信息進行檢查。這樣刷新令牌的配置就完成了。spring
首先根據前面的正常流程,申請受權碼,而後獲取到令牌:數據庫
回參中有一個參數是 refresh_token 這個參數就是專門用來刷新令牌的,下面來看如何刷新令牌。刷新令牌和獲取令牌同樣,須要用post的方式訪問同一個地址 :spring-boot
不一樣的是,刷新令牌須要四個參數:post
grant_type:值必須是 refresh_token測試
client_idspa
client_secrethtm
refresh_token : 上次獲取令牌時回參中的 refresh_token對象
經過上面四個參數能夠看出,刷新令牌中每次變化的參數只有refresh_token。咱們來使用本次獲取的 refresh_token 來刷新令牌:
能夠看到刷新令牌和從頭開始獲取令牌返回的結果是同樣的,使用本次刷新請求中返回的refresh_token替換上面的參數,還能夠再次刷新。有興趣能夠多試幾回。
代碼地址: https://gitee.com/blueses/spring-boot-security 25
本文由博客一文多發平臺 OpenWrite 發佈!
原文出處:https://www.cnblogs.com/guos/p/11656730.html