推荐开源项目:JWT-Auth - Go语言中的JWT认证中间件
package main
import (
"fmt"
"github.com/dgrijalva/jwt-go"
"time"
)
// 定义一个简单的密钥,用于签名JWT
var MySecret = []byte("我的超级密钥")
func main() {
// 创建一个新的JWT令牌
token := jwt.New(jwt.SigningMethodHS256)
// 设置JWT的有效期
token.Claims["exp"] = time.Now().Add(time.Hour * 24).Unix() // 24小时后过期
token.Claims["iat"] = time.Now().Unix() // 设置签发时间
token.Claims["iss"] = "issuer" // 签发者
token.Claims["sub"] = "subject" // 主题
token.Claims["aud"] = "audience" // 受众
// 用密钥对JWT进行签名
tokenString, err := token.SignedString(MySecret)
if err != nil {
fmt.Println("生成签名错误:", err)
return
}
fmt.Println("生成的JWT:", tokenString)
}
这段代码展示了如何在Go语言中使用jwt-go
库来创建一个简单的JWT令牌,并对其进行签名。代码首先导入了必要的包,定义了一个密钥,然后创建了一个新的JWT令牌,并设置了其过期时间和一些标准声明。最后,代码使用定义的密钥对令牌进行签名,并打印出签名后的令牌。这个过程是JWT验证中的一个基本步骤,对开发者有很好的教育意义。
评论已关闭