【问题标题】:Golang jwt.StandardClaims time format type issueGolang jwt.StandardClaims 时间格式类型问题
【发布时间】:2022-02-18 14:37:29
【问题描述】:

我正在使用这个包“github.com/dgrijalva/jwt-go/v4”在登录函数中设置声明:

now := time.Now()
claims := &jwt.StandardClaims{
    Issuer: "Test",
    ExpiresAt: now.Add(time.Hour * 24).Unix(),
}

IDE 一直告诉我 *Cannot use 'now.Add(time.Hour * 24).Unix()' (type int64) 作为类型 Time。我读到了,因为我输入了错误的值,但是,在我在网上看到的所有示例中,这正是大多数人的设置方式。

我仍在赚钱,所以我不确定将这个时间格式转换为有效格式的正确方法。

【问题讨论】:

  • 我认为您需要删除 .Unix() 部分。
  • 我试过了。然后它给出了同样的错误,但说不能使用类型时间作为类型 *Time。
  • 如果你不使用 v4.看起来 v4 引入了重大更改。它也是一个预览版。所以还没有官方文档。
  • 这就是问题所在。我正在使用 v3.2,一切都很好。
  • 不要使用github.com/dgrijalva/jwt-go,它存在严重的安全问题

标签: go jwt claims-authentication


【解决方案1】:

ExpiresAt 要求数据类型为 Time.time 并且函数 Unix() 以 int64 形式返回以秒为单位的时间,我建议你使用这个 package 而不是你现在使用的那个,它不是维护时间更长

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-05
    • 1970-01-01
    • 2011-09-09
    • 1970-01-01
    • 2016-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多