最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

gtoken替換jwt實(shí)現(xiàn)sso登錄的排雷避坑

 更新時(shí)間:2022年06月11日 14:48:57   作者:王中陽(yáng)Go  
這篇文章主要為大家介紹了gtoken替換jwt實(shí)現(xiàn)sso登錄的排雷避坑,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

前言

前段時(shí)間整理的文章:gtoken替換jwt實(shí)現(xiàn)sso登錄 | 帶你讀源碼 收到了大家積極的反饋,gtoken替換jwt實(shí)現(xiàn)sso登錄的開(kāi)發(fā)過(guò)程是比較穩(wěn)健的,但是在我們測(cè)試聯(lián)調(diào)的過(guò)程中暴露出了很多問(wèn)題。

如果大家也想使用gtoken替換jwt實(shí)現(xiàn)sso登錄,那么這篇文章可以減少很多大家debug的時(shí)間,分享一下我的踩坑之旅。

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)原理

gtoken的實(shí)現(xiàn)原理以及如何使用建議大家讀我這篇文章: gtoken替換jwt實(shí)現(xiàn)sso登錄 | 帶你讀源碼

在本篇文章中就不贅述了,下面重點(diǎ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)題,比如提示這種:

可以通過(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ì)失效的。

總結(jié)

  • gtoken版本問(wèn)題
  • 連接的redis庫(kù)不一致問(wèn)題
  • 是否跨環(huán)境使用了token,導(dǎo)致校驗(yàn)不過(guò)的問(wèn)題
  • 多人登錄同一個(gè)賬號(hào),有退出操作,導(dǎo)致登錄態(tài)失效的問(wèn)題

上面這些是我在開(kāi)發(fā)中踩的坑,大家如果在集成gtoken時(shí)遇到登錄態(tài)問(wèn)題可以從這幾個(gè)角度排查問(wèn)題,更多關(guān)于gtoken替換jwt登錄sso避坑的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Go語(yǔ)言atomic.Value如何不加鎖保證數(shù)據(jù)線程安全?

    Go語(yǔ)言atomic.Value如何不加鎖保證數(shù)據(jù)線程安全?

    這篇文章主要介紹了Go語(yǔ)言atomic.Value如何不加鎖保證數(shù)據(jù)線程安全詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • Go實(shí)現(xiàn)mongodb增刪改查工具類的代碼示例

    Go實(shí)現(xiàn)mongodb增刪改查工具類的代碼示例

    這篇文章主要給大家介紹了關(guān)于Go實(shí)現(xiàn)mongodb增刪改查工具類的相關(guān)資料,MongoDB是一個(gè)NoSQL數(shù)據(jù)庫(kù),它提供了靈活的文檔存儲(chǔ)模型以及強(qiáng)大的查詢和操作功能,需要的朋友可以參考下
    2023-10-10
  • 一文帶你了解Golang中interface的設(shè)計(jì)與實(shí)現(xiàn)

    一文帶你了解Golang中interface的設(shè)計(jì)與實(shí)現(xiàn)

    本文就來(lái)詳細(xì)說(shuō)說(shuō)為什么說(shuō)?接口本質(zhì)是一種自定義類型,以及這種自定義類型是如何構(gòu)建起?go?的?interface?系統(tǒng)的,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-01-01
  • Golang判斷struct/slice/map是否相等以及對(duì)比的方法總結(jié)

    Golang判斷struct/slice/map是否相等以及對(duì)比的方法總結(jié)

    平時(shí)開(kāi)發(fā)中對(duì)比兩個(gè)struct或者map、slice是否相等是經(jīng)常遇到的,有很多對(duì)比的方式,比如==,reflect.DeepEqual(),cmp.Equal()等也是經(jīng)常容易混淆的,這么多種對(duì)比方式,適用場(chǎng)景和優(yōu)缺點(diǎn)都有哪些呢?今天我們來(lái)具體總結(jié)一下,感興趣的小伙伴們可以參考借鑒
    2022-11-11
  • GO語(yǔ)言 復(fù)合類型專題

    GO語(yǔ)言 復(fù)合類型專題

    這篇文章主要介紹了GO語(yǔ)言 復(fù)合類型的的相關(guān)資料,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • Golang比較兩個(gè)slice是否相等的問(wèn)題

    Golang比較兩個(gè)slice是否相等的問(wèn)題

    本文主要介紹了Golang比較兩個(gè)slice是否相等的問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • 解決panic: assignment to entry in nil map問(wèn)題

    解決panic: assignment to entry in nil

    這篇文章主要介紹了解決panic: assignment to entry in nil map問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2008-01-01
  • golang結(jié)構(gòu)化日志log/slog包之slog.Record的用法簡(jiǎn)介

    golang結(jié)構(gòu)化日志log/slog包之slog.Record的用法簡(jiǎn)介

    這篇文章主要為大家詳細(xì)介紹了golang結(jié)構(gòu)化日志log/slog包中slog.Record結(jié)構(gòu)體的使用方法和需要注意的點(diǎn),文中的示例代碼講解詳細(xì),需要的可以學(xué)習(xí)一下
    2023-10-10
  • 攔截信號(hào)Golang應(yīng)用優(yōu)雅關(guān)閉的操作方法

    攔截信號(hào)Golang應(yīng)用優(yōu)雅關(guān)閉的操作方法

    這篇文章主要介紹了攔截信號(hào)優(yōu)雅關(guān)閉Golang應(yīng)用,本文介紹了信號(hào)的概念及常用信號(hào),并給出了應(yīng)用廣泛的幾個(gè)示例,例如優(yōu)雅地關(guān)閉應(yīng)用服務(wù)、在命令行應(yīng)用中接收終止命令,需要的朋友可以參考下
    2023-02-02
  • Golang中匿名組合實(shí)現(xiàn)偽繼承的方法

    Golang中匿名組合實(shí)現(xiàn)偽繼承的方法

    這篇文章主要介紹了Golang中匿名組合實(shí)現(xiàn)偽繼承的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08

最新評(píng)論

开化县| 杭锦后旗| 千阳县| 天镇县| 鄂托克旗| 临桂县| 固阳县| 望江县| 永宁县| 贡嘎县| 神木县| 太白县| 定安县| 师宗县| 日照市| 晴隆县| 渝北区| 全南县| 海兴县| 黎平县| 郓城县| 瑞昌市| 信阳市| 德安县| 屏东市| 寿阳县| 长顺县| 泰来县| 壤塘县| 嵊州市| 巴南区| 庆元县| 田东县| 田阳县| 台中县| 利川市| 铜山县| 黄平县| 万荣县| 青州市| 天等县|