如何從 go 中的 jwt 令牌取得過期日期?
在 Go 語言中,JWT 令牌是一種常見的身份驗證機制。要從 JWT 令牌中取得過期日期,我們可以使用第三方函式庫 "github.com/dgrijalva/jwt-go" 來解析令牌的有效載荷。首先,我們需要將令牌字串解析為 jwt.Token 對象,然後可以透過存取 Token.Claims["exp"] 欄位來取得過期日期。此欄位的值是 Unix 時間戳,可以使用 time.Unix 函數將其轉換為時間類型。透過這種方式,我們可以輕鬆地取得 JWT 令牌的過期日期。
問題內容
我有一個 jwt 令牌,我可以在 https://jwt.io/
網站上看到解碼後的令牌。它不需要我設定任何秘密或聲明。所以我正在尋找一種方法來解碼令牌以獲得過期日期而不提供任何秘密。
我正在使用函式庫 ngopkg.in/square/go-jose.v2/jwt
,以下是我的程式碼:
token, err := jwt.ParseSigned(jwtToken)
回傳值 token
有一個標頭字段,其中包括 keyid、演算法,但它沒有給我過期日期。
我搜尋過這個主題,人們說使用 github.com/auth0/go-jwt-middleware/v2/validator
庫,但它需要設定金鑰/秘密。解析令牌的過期日期是否需要秘密。 網站https://jwt.io/
如何知道過期日期?
解決方法
使用 jwt.io 中的範例 jwt 令牌,此程式碼解析並擷取未經驗證簽署的宣告:
func main() { raw := "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" t, err := jwt.ParseSigned(raw) if err != nil { panic(err) } var claims map[string]any if err := t.UnsafeClaimsWithoutVerification(&claims); err != nil { panic(err) } fmt.Println(claims) }
在此範例中,過期時間應顯示為 claims
對應中的欄位之一。要檢索它,請使用 exp, ok := claims["expire"]
(取決於確切的名稱)。
以上是如何從 go 中的 jwt 令牌取得過期日期?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

我有一個jwt令牌,我可以在https://jwt.io/網站上看到解碼後的令牌。它不需要我設定任何秘密或聲明。所以我正在尋找一種方法來解碼令牌以獲得過期日期而不提供任何秘密。我正在使用庫ngopkg.in/square/go-jose.v2/jwt,下面是我的程式碼:token,err:=jwt.ParseSigned(jwtToken)返回值token有一個標頭字段,其中包括keyid、演算法,但它沒有給我過期日期。我搜尋過這個主題,人們說使用github.com/a

parse 函數解析字串,將其轉換為由分隔符號分隔的令牌清單。步驟:1. 從字串開頭搜尋第一個非分隔符字元;2. 繼續搜尋直到遇到分隔符,並在該分隔符處終止字串;3. 將令牌儲存在令牌數組中;4 . 重複1-3 步,直到字串結束;5. 在陣列結尾加上指向NULL 的指針,表示陣列結束。

我有一個用例,我們在x-www-form-urlencoded主體中取得嵌套鍵值,如下所示name=abc&age=12¬es[key1]=value1¬es[key2]=value2我嘗試了url.parsequery("name= abc&age=12¬es\[key1\]=value1¬es\[key2\]=value2")但它給了{"name":"abc","age":12,"notes[key1]":"value1", "note

在 C++ 中,有兩種將 string 轉換為 int 的方法:使用 sto i() 函數,直接接收字串並傳回整數。使用 istringstream 類,將字串解析為輸入流,然後提取整數。選擇方法取決於字串格式:如果格式明確且無非數字字符,stoi() 更簡潔;如果字串可能包含非數字字元或需要自訂轉換,則 istringstream 更靈活。

Java中的parse指將字串或其他表示轉換為指定類型或物件的處理過程。常見的應用包括將字串轉換為數字類型、日期/時間物件、JSON物件以及從XML文件中提取資料。透過內建方法、格式化器類別或第三方函式庫進行parse。

Go語言中解析位址的關鍵函數包括:net.ParseIP():解析IPv4或IPv6位址。 net.ParseCIDR():解析CIDR標記。 net.ResolveIPAddr():解析主機名稱或IP位址為IP位址。 net.ResolveTCPAddr():解析主機名稱和連接埠為TCP位址。 net.ResolveUDPAddr():解析主機名稱和連接埠為UDP位址。

深入了解PHP:JSONUnicode轉中文的實作方法在開發中,我們經常會遇到需要處理JSON資料的情況,而JSON中的Unicode編碼在一些場景下會為我們帶來一些問題,特別是當需要將Unicode編碼轉換為中文字元時。在PHP中,有一些方法可以幫助我們實現這個轉換過程,以下將介紹常用的方法,並提供具體的程式碼範例。首先,讓我們先來了解一下JSON中Un

Go語言反射允許在運行時操控變數值,包括修改布林值、整數、浮點數和字串。透過取得變數的Value,可以呼叫SetBool、SetInt、SetFloat和SetString方法來進行修改。例如,可以解析JSON字串為結構體,然後使用反射修改結構體欄位的值。需要注意,反射操作較慢,且無法修改不可修改字段,修改結構體字段值時可能不會自動更新相關字段。
