| 123456789101112131415161718192021222324252627282930 |
- package utils
- import (
- "time"
- "github.com/golang-jwt/jwt/v4"
- )
- type Claims struct {
- UserId int64
- jwt.RegisteredClaims
- }
- const TokenExpireDuration = time.Hour * 24 * 7 // token有效期7天
- var Secret = []byte("your-secret-key") // 实际使用时应该从配置文件读取
- // GenerateToken 生成JWT
- func GenerateToken(userId int64) (string, error) {
- claims := Claims{
- UserId: userId,
- RegisteredClaims: jwt.RegisteredClaims{
- ExpiresAt: jwt.NewNumericDate(time.Now().Add(TokenExpireDuration)),
- IssuedAt: jwt.NewNumericDate(time.Now()),
- NotBefore: jwt.NewNumericDate(time.Now()),
- },
- }
- token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
- return token.SignedString(Secret)
- }
|