當前位置:編程學習大全網 - 源碼下載 - 登錄界面源代碼

登錄界面源代碼

在最初的dubbo+zookeeper項目中,web模塊只公開Restful接口,每個服務模塊只公開duboo接口。此時,用戶登錄後,web項目對令牌進行認證和驗證,sessionID通過dubbo的隱式參數傳遞傳遞給dubbo服務模塊。攔截器然後根據sessionID從Redis獲取用戶信息,並將其設置為當前線程。

但是,在springcloud中,每個微服務都直接公開restful接口。這時候各個微服務如何獲取當前的用戶信息?最好的辦法是代幣。token可以作為BS之間的會話標識(壹般是原生隨機token),也可以作為信息的載體傳遞壹些定制的信息(jwt,即Json web token)。

為了更清楚地理解這篇文章,我們需要對spring-security-oauth和jwt有所了解。本文只關註用戶信息的傳遞。

認證服務器配置授權服務器配置適配器

自定義令牌轉換器

CustomJwtAccessTokenConverter

此時以固定格式訪問授權服務器的令牌接口獲取令牌。如圖,可以獲得jwt格式的token,並添加了額外的信息nick_name。

以下信息,即用戶名和授權信息,可以通過直接解析jwt字符串獲得。

您只需要指定與授權服務器完全相同的令牌存儲和令牌轉換器。

在securiy的過濾器中,OAuth 2認證處理過濾器將從令牌中獲取相關信息進行認證。

源代碼:

請註意,資源服務器主要配置在

資源服務器配置適配器

微服務獲取jwttoken中的用戶信息。有兩種方法可以通過使用安全上下文直接獲得當前用戶名和權限,另壹種方法是定制攔截器以獲得附加信息。

這很簡單,獲取頭頭解析驗證令牌。

然後獲取之前從授權服務器添加的nick_name的額外信息,放入線程變量中。

其中用戶上下文類

啟動攔截器來註冊webmvc配置類。

在控制器中獲取用戶信息如下圖所示。

在默認的認證異常中如圖。

假設我們做全局異常處理,前端想在令牌過期時進行統壹登錄跳轉。怎麽做呢?

只需實現AuthenticationEntryPoint接口並覆蓋開始方法。

註意,直接拋出異常並不需要@RestControllerAdvice,因為這裏響應直接返回,並不由控制器處理。

此時,我返回我的定制響應對象,如圖所示。

  • 上一篇:如果股價持續暴跌,但散戶長期持股,莊家會怎麽做?
  • 下一篇:如何進行ICO眾籌
  • copyright 2024編程學習大全網