我正在使用这个包github.com/dgrijalva/jwt-go/v4
在登录函数中设置声明:
now := time.Now()
claims := &jwt.StandardClaims{
Issuer: "Test",
ExpiresAt: now.Add(time.Hour * 24).Unix(),
}
IDE一直告诉我:
不能将“now.Add(time.Hour * 24).Unix()”(类型int64)用作类型 Time。
我读到这一点是因为我输入了错误的值,然而,在我在网上看到的所有示例中,这正是大多数人设置它的方式。
我还在学习围棋,所以我不确定将这种时间格式转换为有效格式的正确方法。
5条答案
按热度按时间8qgya5xd1#
ExpiresAt
要求数据类型为*time.Time
,函数Unix()
返回int64
中以秒为单位的时间。我建议您使用
github.com/golang-jwt/jwt
包,而不是您现在使用的包,该包已不再维护。wb1gzix02#
在www.example.com中github.com/golang-jwt/jwt/v4不推荐使用StandardClaims类型,应将StandardClaims替换为RegisteredClaims。
关于
Cannot use 'now.Add(time.Hour * 24).Unix()' (type int64) as the type Time.
,您需要使用NumericDate类型,因此您的代码将如下所示:ubbxdtey3#
你可以试试
ni65a41a4#
你的代码是好的问题是与你的包的导入你可以改变导入
从
到
f45qwnt85#
好吧,你可以换了