單點登錄 shiro和jwt區(qū)別?
shiro和jwt區(qū)別?不是一回事shiro是一套權(quán)限管理框架,包括認證、授權(quán)等,在使用時直接寫相應(yīng)的接口就可以了,已經(jīng)把底層處理都寫好了而jwt只是一種生成token的機制,所有權(quán)限處理邏輯還需要自
shiro和jwt區(qū)別?
不是一回事shiro是一套權(quán)限管理框架,包括認證、授權(quán)等,在使用時直接寫相應(yīng)的接口就可以了,已經(jīng)把底層處理都寫好了而jwt只是一種生成token的機制,所有權(quán)限處理邏輯還需要自己寫
oauth2與jwt的區(qū)別?
oauth2有client和scope的概念,jwt沒有。如果只是拿來用于頒布token的話,二者沒區(qū)別。常用的bearer算法oauth、jwt都可以用。應(yīng)用場景不同而已
Jwt的token如何像session一樣去延長時間?
隨著技術(shù)的發(fā)展,分布式Web應(yīng)用的普及,通過session管理用戶登錄狀態(tài)成本越來越高,因此慢慢發(fā)展成為token的方式做登錄身份校驗,然后通過token去取Redis中的緩存的用戶信息,隨著之后JWT的出現(xiàn),校驗方式更加簡單便捷化,無需通過Redis緩存,而是直接根據(jù)token取出保存的用戶信息,以及對token可用性校驗,單點登錄更為簡單。
JWT中一般包含兩個token:access token和refresh token。當(dāng)用戶通過登錄等方式驗證身份成功后,服務(wù)器會生成一個access token和一個refresh token,并返回到前端進行儲存。兩個token都會在服務(wù)器設(shè)置過期時間,但access token的過期時間較短,而refresh token則較長。當(dāng)前端向服務(wù)器發(fā)送請求時,access token隨著請求一起發(fā)送到服務(wù)器,用于驗證請求者的身份。當(dāng)服務(wù)器發(fā)現(xiàn)access token已經(jīng)過期后,就會返回失敗信息。此時前端需要使用refresh token向服務(wù)器申請新的access token。如果refresh token沒有問題,服務(wù)器就會生成新的access token返回。而如果refresh token也過期了,就需要再次向用戶要求登錄驗證身份了。
總而言之,JWT延長時間是通過利用過期時間較長的refresh token重新申請新的access token實現(xiàn)的,而當(dāng)refresh token也過期時,延長時間就不可能了。