dgrijalva/jwt-go

cannot use time.Now().Add(time.Hour * 24).Unix() (type int64) as type *jwt.Time in field value

encryptblockr opened this issue · 3 comments

Why am i getting this error?

cannot use time.Now().Add(time.Hour * 24).Unix() (type int64) as type *jwt.Time in field value

Here is what i have

import (
	"github.com/gofiber/fiber/v2"
	"golang.org/x/crypto/bcrypt"
	"github.com/dgrijalva/jwt-go/v4"
	"strconv"
	"time"
)

	payload := jwt.StandardClaims{
		Subject: strconv.Itoa(int(user.Id)),
		ExpiresAt: time.Now().Add(time.Hour * 24).Unix(),
	}

	token, err := jwt.NewWithClaims(jwt.SigningMethodHS256, payload).SignedString([]byte("secret"))

What am i doing wrong here???

issue is on this particular line

		ExpiresAt: time.Now().Add(time.Hour * 24).Unix(),

I have also tried the following

	payload := &jwt.StandardClaims{
		Subject: strconv.Itoa(int(user.Id)),
		ExpiresAt: time.Now().Add(time.Hour * 24),
	}

i get this error

cannot use time.Now().Add(time.Hour * 24) (type time.Time) as type *jwt.Time in field value

funny thing is i see this as part of the examples here https://github.com/dgrijalva/jwt-go/blob/master/example_test.go#L18 but yet does not work for me

	payload := &jwt.StandardClaims{
		Subject: strconv.Itoa(int(user.Id)),
		ExpiresAt: 3600,
	}

i get this error

cannot use 3600 (type int) as type *jwt.Time in field value

could you fixed that error. I got same

try change import
from "github.com/dgrijalva/jwt-go/v4"
to "github.com/dgrijalva/jwt-go"