4 回答

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超6個(gè)贊
ExpiresAt
要求數(shù)據(jù)類型為*time.Time
,并且函數(shù)Unix()
以秒為單位返回時(shí)間int64
。
我建議您使用該軟件包github.com/golang-jwt/jwt
而不是您現(xiàn)在使用的軟件包,該軟件包已不再維護(hù)。

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超5個(gè)贊
在 github.com/golang-jwt/jwt/v4 不推薦使用 StandardClaims 類型,您應(yīng)該將 StandardClaims 替換為 RegisteredClaims。
關(guān)于Cannot use 'now.Add(time.Hour * 24).Unix()' (type int64) as the type Time.您需要使用 NumericDate 類型,因此您的代碼將如下所示:
claims := &jwt.RegisteredClaims{
Issuer: "Test",
ExpiresAt: &jwt.NumericDate{now.Add(time.Hour * 24)},
}

TA貢獻(xiàn)2039條經(jīng)驗(yàn) 獲得超8個(gè)贊
func GenerateToken(username, password string) (string, error) {
nowTime := time.Now()
expireTime := nowTime.Add(12 * time.Hour)
claims := Claims{
username,
password,
jwt.RegisteredClaims{
ExpiresAt: jwt.NewNumericDate(expireTime),
Issuer: "test",
},
}
tokenClaims := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
token, err := tokenClaims.SignedString(jwtSecret)
return token, err
}

TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊
你的代碼是好的問(wèn)題是你的包的導(dǎo)入你可以改變導(dǎo)入
從
"github.com/dgrijalva/jwt-go/v4"
至
"github.com/dgrijalva/jwt-go"
- 4 回答
- 0 關(guān)注
- 486 瀏覽
添加回答
舉報(bào)