base-golang/pkg/token/token.go

37 lines
684 B
Go
Raw Normal View History

2024-07-23 10:23:43 +08:00
package token
import (
"net/url"
"time"
"github.com/golang-jwt/jwt/v4"
)
var _ Token = (*token)(nil)
type Token interface {
// i 为了避免被其他包实现
i()
// JwtSign JWT 签名方式
JwtSign(userId, subject string, expireDuration time.Duration) (tokenString string, err error)
JwtParse(tokenString string) (*jwt.RegisteredClaims, error)
// UrlSign URL 签名方式,不支持解密
UrlSign(path string, method string, params url.Values) (tokenString string, err error)
}
type token struct {
secret string
domain []string
}
func New(secret string, domain ...string) Token {
return &token{
secret: secret,
domain: domain,
}
}
func (t *token) i() {}