首页 > 后端开发 > Golang > 我正在尝试使用 ES256 算法创建 jwt 令牌,但我无法解析我的私钥

我正在尝试使用 ES256 算法创建 jwt 令牌,但我无法解析我的私钥

WBOY
发布: 2024-02-10 15:18:09
转载
770 人浏览过

我正在尝试使用 ES256 算法创建 jwt 令牌,但我无法解析我的私钥

php小编草莓正在尝试使用ES256算法创建jwt令牌,但遇到了解析私钥的问题。这是一个常见的问题,可能是由于私钥不正确或者格式不符合要求导致的。要解决这个问题,首先需要确保私钥是正确的,并且符合ES256算法的要求。如果私钥是从其他地方获取的,可以尝试重新生成一个新的私钥。另外,还要确保私钥的格式正确,可以使用openssl命令行工具来验证私钥的格式。如果私钥格式正确,但仍然无法解析,可能是由于其他原因,如权限问题或环境配置问题。在解决这个问题之前,可以先检查一下相关的权限和配置,以确保没有遗漏或错误。

问题内容

这是我尝试创建 JWT 令牌的 golang 代码

package main

import (
    "encoding/pem"
    "fmt"
    "time"

    "github.com/dgrijalva/jwt-go"
)

func main() {
    // Sample PEM-encoded private key
    pemKey := `-----BEGIN EC PRIVATE KEY-----MHcCAQEEIAh5qA3rmqQQuu0vbKV/+zouz/y/Iy2pLpIcWUSyImSwoAoGCCqGSM49AwEHoUQDQgAEYD54V/vp+54P9DXarYqx4MPcm+HKRIQzNasYSoRQHQ/6S6Ps8tpMcT+KvIIC8W/e9k0W7Cm72M1P9jU7SLf/vg==-----END EC PRIVATE KEY-----`

    // Convert the PEM-encoded private key to a byte slice
    pemBytes, _ := pem.Decode([]byte(pemKey))
    // // Parse and decode the private key
    key, err := jwt.ParseECPrivateKeyFromPEM(pemBytes.Bytes)
    if err != nil {
        fmt.Println("Error parsing private key:", err)
        return
    }

    uAccessToken := jwt.NewWithClaims(jwt.SigningMethodES256, jwt.MapClaims{
        "iss":         "issuer",
        "sub":         "access token",
        "exp":         time.Now().Add(time.Minute * 20).Unix(),
    })

    AccessToken, err := uAccessToken.SignedString(key); 
    if err != nil {
        fmt.Println("Error signing token:", err)
        return
    }

    // // You now have the ECDSA private key available in the 'key' variable

    fmt.Println("ECDSA Private Key:", AccessToken)
}
登录后复制

但是每次我尝试创建令牌时都会收到此错误:

<code>
Error parsing private key: Invalid Key: Key must be PEM encoded PKCS1 or PKCS8 private key
</code>
登录后复制

有人可以建议这里出了什么问题吗?

我正在尝试使用 ES256 算法创建 JWT,其中我需要私钥。但不知何故我收到了错误。

解决方法

需要两个修复

1-注释/删除 pem.Decode() 它需要以字节为单位的原始 pem 密钥。

2-单行中的键字符串更改键字符串

此处检查解决方案

以上是我正在尝试使用 ES256 算法创建 jwt 令牌,但我无法解析我的私钥的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:stackoverflow.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板