gojwtjwt-go

Using jwt-go Library - key is of invalid type


I am trying to generate the token as mention in the code but it's giving me error on this line though i am using

tokenString, err := token.SignedString(mySigningKey) as key is of invalid type

Any suggestions to solve this problem?

Thanks

package main

import (
    "fmt"
    "github.com/dgrijalva/jwt-go"
    "time"
)

var (
    mySigningKey = []byte("secret")
)

func GenerateJWT() (string, error) {

    token := jwt.New(jwt.SigningMethodES256)

    claims := token.Claims.(jwt.MapClaims)

    claims["authorized"] = true
    claims["user"] = "ravi"
    claims["exp"] = time.Now().Add(time.Minute + 30).Unix()

    tokenString, err := token.SignedString(mySigningKey)

    if err != nil {
        fmt.Println(err)
        fmt.Errorf("Something went wrong : %s", err.Error())
        return "", err

    }
    return tokenString, nil
}

func main() {
    tokenString, err := GenerateJWT()
    if err != nil {
        fmt.Println(err)
    }
    fmt.Println(tokenString)
}


Solution

  • This method (SigningMethodES256) is ECDSA signing method, you need pair key for signing and validation , in your case, it's better change to SigningMethodHS256

        token := jwt.New(jwt.SigningMethodHS256)