溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

gtoken如何替換jwt實(shí)現(xiàn)sso登錄

發(fā)布時(shí)間:2022-06-13 10:08:13 來(lái)源:億速云 閱讀:171 作者:iii 欄目:開(kāi)發(fā)技術(shù)

今天小編給大家分享一下gtoken如何替換jwt實(shí)現(xiàn)sso登錄的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來(lái)了解一下吧。

    gtoken

    服務(wù)端出于優(yōu)化項(xiàng)目體驗(yàn)的考慮,替換了之前校驗(yàn)登錄狀態(tài)的方式,由JWT替換為 Gtoken。

    gtoken替換jwt解決的問(wèn)題

    • 有效的避免了jwt服務(wù)端無(wú)法退出問(wèn)題;

    • 解決jwt無(wú)法作廢已頒布的令牌,只能等到令牌過(guò)期問(wèn)題;

    • 通過(guò)用戶擴(kuò)展信息存儲(chǔ)在服務(wù)端,有效規(guī)避了jwt攜帶大量用戶擴(kuò)展信息導(dǎo)致降低傳輸效率問(wèn)題;

    兼容JWT

    gtoken替換jwt實(shí)現(xiàn)sso登錄在前后端通信上是能做到兼容JWT的。

    我們服務(wù)端的替換操作對(duì)前端同學(xué)應(yīng)該是無(wú)感的,因?yàn)楹蠖俗隽思嫒萏幚?,不需要前端同學(xué)修改任何東西。

    gtoken實(shí)現(xiàn)原理

    踩坑之旅

    當(dāng)大家遇到登錄問(wèn)題時(shí)可以從這幾個(gè)方向定位問(wèn)題:

    1 gtoken版本

    如果我們使用的版本是gf1.x.x,只能使用gtokenv1.4.X相關(guān)版本。

    gtoken v1.5.0版本全面適配GoFrame v2.0.0。

    如果遇到版本不一致的問(wèn)題,比如提示這種:

    gtoken如何替換jwt實(shí)現(xiàn)sso登錄

    可以通過(guò)指定gtoken版本解決,比如這樣:

    go get github.com/goflyfox/gtoken@v1.4.1

    如果我們是團(tuán)隊(duì)多人協(xié)作,碰到需要指定依賴版本的問(wèn)題,我們可以考慮把go.mod提交到git中。

    在遇到這個(gè)問(wèn)題之前,我的習(xí)慣是把go.mod添加的gitignore中。

    大家有沒(méi)有更好的辦法來(lái)解決需要指定依賴版本的問(wèn)題呢

    2 gtoken存儲(chǔ)問(wèn)題

    如果你們的項(xiàng)目是集群應(yīng)用,gtoken的存儲(chǔ)就需要使用gredis模式,而不是單機(jī)的gcache模式了。

    這就需要我們生成token和獲取token的各個(gè)項(xiàng)目連接的redis是一致的。

    如果你是集群應(yīng)用,千萬(wàn)要確保涉及到gtoken生成和驗(yàn)證的各個(gè)項(xiàng)目連接的redis是一致的。

    所以,大家遇到token校驗(yàn)不通過(guò)時(shí),可以首先排查一下配置文件,是不是連接redis庫(kù)的問(wèn)題。

    3 不能跨環(huán)境使用token

    正如上面提到的,如果gtoken的存儲(chǔ)是使用redis中來(lái)實(shí)現(xiàn)集群項(xiàng)目的共享。

    那我們是不能跨環(huán)境使用token的,因?yàn)槲覀兊谋緳C(jī)、開(kāi)發(fā)、測(cè)試、預(yù)發(fā)布、生產(chǎn)等環(huán)境往往連接的是不同的redis。

    4 測(cè)試賬號(hào)不規(guī)范問(wèn)題

    如果測(cè)試時(shí)多個(gè)用戶登錄同一個(gè)賬號(hào),可能會(huì)出現(xiàn)奇葩問(wèn)題。

    究其原因是這樣的:

    gtoken是允許多點(diǎn)登錄的,所以支持大家使用同一個(gè)賬號(hào)登錄。

    但是!如果其中一個(gè)人做了退出登錄的操作,那么其他人的登錄態(tài)也會(huì)失效,需要重新登錄。

    比如設(shè)置的token有效期是2個(gè)小時(shí),且2小時(shí)內(nèi)有請(qǐng)求操作,會(huì)刷新token的有效期。但是如果有多人登錄同一個(gè)賬號(hào),其中一個(gè)人退出,那么其他人的登錄態(tài)也會(huì)失效的。

    以上就是“gtoken如何替換jwt實(shí)現(xiàn)sso登錄”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

    向AI問(wèn)一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI