推荐使用Go JWT中间件:安全高效的身份验证解决方案
package main
import (
"fmt"
"github.com/golang-jwt/jwt"
"time"
)
// 定义一个用于签名的密钥
var mySigningKey = []byte("AllYourBaseAreBelongToUs")
// 创建一个JWT令牌
func createJWT(username string, expireTime time.Duration) (string, error) {
// 设置令牌过期时间
expireAt := time.Now().Add(expireTime).Unix()
// 创建一个新的JWT令牌
token := jwt.New(jwt.SigningMethodHS256)
// 设置JWT的有效负载
token.Claims = jwt.MapClaims{
"user": username,
"exp": expireAt,
}
// 用密钥对JWT进行签名
tokenString, err := token.SignedString(mySigningKey)
if err != nil {
return "", err
}
return tokenString, nil
}
func main() {
// 创建一个JWT令牌并输出
tokenString, err := createJWT("admin", 30*time.Minute)
if err != nil {
fmt.Println("Error creating JWT:", err)
return
}
fmt.Printf("JWT token created: %s\n", tokenString)
}
这段代码首先定义了一个密钥,然后实现了一个创建JWT的函数。在main函数中,我们创建了一个用户名为"admin",有效期为30分钟的JWT令牌,并打印了令牌字符串。这个例子展示了如何使用Go语言和JWT库来安全地生成JWT令牌,并提供了一个简单的实用示例。
评论已关闭