日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java token_Java实现基于token认证的方法示例

發布時間:2024/7/23 java 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java token_Java实现基于token认证的方法示例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

隨著互聯網的不斷發展,技術的迭代也非常之快。我們的用戶認證也從剛開始的用戶名密碼轉變到基于cookie的session認證,然而到了今天,這種認證已經不能滿足與我們的業務需求了(分布式,微服務)。我們采用了另外一種認證方式:基于token的認證。

一、與cookie相比較的優勢:

1、支持跨域訪問,將token置于請求頭中,而cookie是不支持跨域訪問的;

2、無狀態化,服務端無需存儲token,只需要驗證token信息是否正確即可,而session需要在服務端存儲,一般是通過cookie中的sessionID在服務端查找對應的session;

3、無需綁定到一個特殊的身份驗證方案(傳統的用戶名密碼登陸),只需要生成的token是符合我們預期設定的即可;

4、更適用于移動端(Android,iOS,小程序等等),像這種原生平臺不支持cookie,比如說微信小程序,每一次請求都是一次會話,當然我們可以每次去手動為他添加cookie,詳情請查看博主另一篇博客;

5、避免CSRF跨站偽造攻擊,還是因為不依賴cookie;

6、非常適用于RESTful API,這樣可以輕易與各種后端(java,.net,python......)相結合,去耦合

還有一些優勢這里就不一一列舉了。

二、基于JWT的token認證實現

JWT:JSON Web Token,其實token就是一段字符串,由三部分組成:Header,Payload,Signature。詳細情況請自行百度,現在,上代碼。

1、引入依賴,這里選用java-jwt,選擇其他的依賴也可以

2、實現簽名方法

設置15分鐘過期也是出于安全考慮,防止token被竊取,不過一般選擇基于token認證,傳輸方式我們都應該選擇https,這樣別人無法抓取到我們的請求信息。這個私鑰是非常重要的,加密解密都需要用到它,要設置的足夠復雜并且不能被盜取,我這里選用的是一串uuid,加密方式是HMAC256。

3、認證

我這里演示的還是以傳統的用戶名密碼驗證,驗證通過發放token。

4、配置攔截器

實現HandleInterceptor,重寫preHandle方法,該方法是在每個請求之前觸發執行,從request的頭里面取出token,這里我們統一了存放token的鍵為accessToken,驗證通過,放行,驗證不通過,返回認證失敗信息。

5、設置攔截器

這里使用的是Spring的xml配置攔截器,放過認證接口。

6、token解碼方法

7、測試

訪問攜帶token,請求成功。

未攜帶token或者token錯誤,過期,返回認證失敗信息。

8、獲取token里攜帶的信息

我們可以將一些常用的信息放入token中,比如用戶登陸信息,可以方便我們的使用

至此,一個簡單的基于token認證就實現了,下次我將shiro與JWT整合到一起。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

總結

以上是生活随笔為你收集整理的java token_Java实现基于token认证的方法示例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。