21 lines
458 B
Go
21 lines
458 B
Go
package jwt
|
|
|
|
import (
|
|
"crypto/rand"
|
|
"encoding/hex"
|
|
)
|
|
|
|
// ============================== 令牌标识 ==============================
|
|
|
|
// newJTI 生成令牌唯一标识
|
|
//
|
|
// 生成 16 字节随机数并转为 32 位十六进制字符串,用作黑名单键;
|
|
// 随机源读取失败时返回固定兜底值
|
|
func newJTI() string {
|
|
b := make([]byte, 16)
|
|
if _, err := rand.Read(b); err != nil {
|
|
return "jti-fallback"
|
|
}
|
|
return hex.EncodeToString(b)
|
|
}
|