feat 初始化

This commit is contained in:
2026-10-29 10:12:22 +08:00
parent 332d812347
commit 09c1df8a22
81 changed files with 2211 additions and 7821 deletions

View File

@@ -37,3 +37,35 @@ func ParseToken(tokenString string, secret string) (*Claims, error) {
}
return claims, nil
}
type PhoneClaims struct {
Phone string `json:"phone"`
jwt.RegisteredClaims
}
func GenPhoneToken(phone string, secret string, expires time.Duration) (string, error) {
token := jwt.NewWithClaims(jwt.SigningMethodHS256, PhoneClaims{
Phone: phone,
RegisteredClaims: jwt.RegisteredClaims{
ExpiresAt: jwt.NewNumericDate(time.Now().Add(expires)),
},
})
return token.SignedString([]byte(secret))
}
func ParsePhoneToken(tokenString string, secret string) (*PhoneClaims, error) {
if tokenString == "" {
return nil, errors.New("invalid token")
}
claims := &PhoneClaims{}
token, err := jwt.ParseWithClaims(tokenString, claims, func(_ *jwt.Token) (interface{}, error) {
return []byte(secret), nil
})
if err != nil {
return nil, err
}
if !token.Valid {
return nil, errors.New("invalid token")
}
return claims, nil
}