Java中怎么實(shí)現(xiàn)token認(rèn)證,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
創(chuàng)新互聯(lián)是網(wǎng)站建設(shè)專家,致力于互聯(lián)網(wǎng)品牌建設(shè)與網(wǎng)絡(luò)營銷,專業(yè)領(lǐng)域包括網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、電商網(wǎng)站制作開發(fā)、小程序開發(fā)、微信營銷、系統(tǒng)平臺(tái)開發(fā),與其他網(wǎng)站設(shè)計(jì)及系統(tǒng)開發(fā)公司不同,我們的整合解決方案結(jié)合了恒基網(wǎng)絡(luò)品牌建設(shè)經(jīng)驗(yàn)和互聯(lián)網(wǎng)整合營銷的理念,并將策略和執(zhí)行緊密結(jié)合,且不斷評(píng)估并優(yōu)化我們的方案,為客戶提供全方位的互聯(lián)網(wǎng)品牌整合方案!
一、與cookie相比較的優(yōu)勢(shì):
1、支持跨域訪問,將token置于請(qǐng)求頭中,而cookie是不支持跨域訪問的;
2、無狀態(tài)化,服務(wù)端無需存儲(chǔ)token,只需要驗(yàn)證token信息是否正確即可,而session需要在服務(wù)端存儲(chǔ),一般是通過cookie中的sessionID在服務(wù)端查找對(duì)應(yīng)的session;
3、無需綁定到一個(gè)特殊的身份驗(yàn)證方案(傳統(tǒng)的用戶名密碼登陸),只需要生成的token是符合我們預(yù)期設(shè)定的即可;
4、更適用于移動(dòng)端(Android,iOS,小程序等等),像這種原生平臺(tái)不支持cookie,比如說微信小程序,每一次請(qǐng)求都是一次會(huì)話,當(dāng)然我們可以每次去手動(dòng)為他添加cookie,詳情請(qǐng)查看博主另一篇博客;
5、避免CSRF跨站偽造攻擊,還是因?yàn)椴灰蕾嘽ookie;
6、非常適用于RESTful API,這樣可以輕易與各種后端(java,.net,python......)相結(jié)合,去耦合
還有一些優(yōu)勢(shì)這里就不一一列舉了。
二、基于JWT的token認(rèn)證實(shí)現(xiàn)
JWT:JSON Web Token,其實(shí)token就是一段字符串,由三部分組成:Header,Payload,Signature。詳細(xì)情況請(qǐng)自行百度,現(xiàn)在,上代碼。
1、引入依賴,這里選用java-jwt,選擇其他的依賴也可以
2、實(shí)現(xiàn)簽名方法
設(shè)置15分鐘過期也是出于安全考慮,防止token被竊取,不過一般選擇基于token認(rèn)證,傳輸方式我們都應(yīng)該選擇https,這樣別人無法抓取到我們的請(qǐng)求信息。這個(gè)私鑰是非常重要的,加密解密都需要用到它,要設(shè)置的足夠復(fù)雜并且不能被盜取,我這里選用的是一串uuid,加密方式是HMAC256。
3、認(rèn)證
我這里演示的還是以傳統(tǒng)的用戶名密碼驗(yàn)證,驗(yàn)證通過發(fā)放token。
4、配置攔截器
實(shí)現(xiàn)HandleInterceptor,重寫preHandle方法,該方法是在每個(gè)請(qǐng)求之前觸發(fā)執(zhí)行,從request的頭里面取出token,這里我們統(tǒng)一了存放token的鍵為accessToken,驗(yàn)證通過,放行,驗(yàn)證不通過,返回認(rèn)證失敗信息。
5、設(shè)置攔截器
這里使用的是Spring的xml配置攔截器,放過認(rèn)證接口。
6、token解碼方法
7、測(cè)試
訪問攜帶token,請(qǐng)求成功。
未攜帶token或者token錯(cuò)誤,過期,返回認(rèn)證失敗信息。
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。
網(wǎng)頁名稱:Java中怎么實(shí)現(xiàn)token認(rèn)證
當(dāng)前路徑:http://jinyejixie.com/article24/gpioce.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站、Google、全網(wǎng)營銷推廣、App設(shè)計(jì)、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)