CheckToken的目的
當用戶攜帶token 請求資源服務(wù)器的資源時, OAuth2AuthenticationProcessingFilter 攔截token愤兵,進行token 和userdetails 過程,把無狀態(tài)的token 轉(zhuǎn)化成用戶信息镐侯。
image
詳解
-
OAuth2AuthenticationManager.authenticate(),filter執(zhí)行判斷的入口
image -
當用戶攜帶token 去請求微服務(wù)模塊荷腊,被資源服務(wù)器攔截調(diào)用RemoteTokenServices.loadAuthentication ,執(zhí)行所謂的check-token過程溉潭。
源碼如下
image CheckToken 處理邏輯很簡單,就是調(diào)用redisTokenStore 查詢token的合法性妻味,及其返回用戶的部分信息 (username )
image
- 繼續(xù)看 返回給 RemoteTokenServices.loadAuthentication 最后一句
tokenConverter.extractAuthentication 解析組裝服務(wù)端返回的信息
image
最重要的 userTokenConverter.extractAuthentication(map);
- 最重要的一步,是否判斷是否有userDetailsService實現(xiàn)欣福,如果有 的話去查根據(jù) 返回的
username 查詢一次全部的用戶信息责球,沒有實現(xiàn)直接返回username,這也是很多時候問的為什么只能查詢到username 也就是 EnablePigxResourceServer.details true 和false 的區(qū)別。
image
-
那根據(jù)的你問題,繼續(xù)看 UerDetailsServiceImpl.loadUserByUsername 根據(jù)用戶名去換取用戶全部信息。
image
關(guān)于pig
基于Spring Cloud播急、oAuth2.0開發(fā)基于Vue前后分離的開發(fā)平臺,支持賬號咏瑟、短信、SSO等多種登錄,提供配套視頻開發(fā)教程。
https://gitee.com/log4j/pig