Spring Cloud OAuth2 資源服務器CheckToken 源碼解析

CheckToken的目的

當用戶攜帶token 請求資源服務器的資源時, OAuth2AuthenticationProcessingFilter 攔截token,進行token 和userdetails 過程,把無狀態的token 轉化成用戶信息。git

詳解

  1. OAuth2AuthenticationManager.authenticate(),filter執行判斷的入口 redis

  2. 當用戶攜帶token 去請求微服務模塊,被資源服務器攔截調用RemoteTokenServices.loadAuthentication ,執行所謂的check-token過程。 源碼以下
    服務器

  3. CheckToken 處理邏輯很簡單,就是調用redisTokenStore 查詢token的合法性,及其返回用戶的部分信息 (username )微服務

  1. 繼續看 返回給 RemoteTokenServices.loadAuthentication 最後一句 tokenConverter.extractAuthentication 解析組裝服務端返回的信息

最重要的 userTokenConverter.extractAuthentication(map);3d

  1. 最重要的一步,是否判斷是否有userDetailsService實現,若是有 的話去查根據 返回的 username 查詢一次所有的用戶信息,沒有實現直接返回username,這也是不少時候問的爲何只能查詢到username 也就是 EnablePigxResourceServer.details true 和false 的區別。

  1. 那根據的你問題,繼續看 UerDetailsServiceImpl.loadUserByUsername 根據用戶名去換取用戶所有信息。

關於pig

基於Spring Cloud、oAuth2.0開發基於Vue先後分離的開發平臺,支持帳號、短信、SSO等多種登陸,提供配套視頻開發教程。
https://gitee.com/log4j/pig視頻

相關文章
相關標籤/搜索