123456789101112131415161718192021222324252627282930313233 |
- package rest
- import (
- "time"
- "git.ali33.ru/fcg-xvii/go-tools/json"
- "github.com/dgrijalva/jwt-go"
- )
- func NewTokenGenerator(secret string) *TokenGenerator {
- return &TokenGenerator{
- secret: secret,
- }
- }
- type TokenGenerator struct {
- secret string
- }
- func (s *TokenGenerator) Generate(m json.Map, expire int64) (string, error) {
- token := jwt.New(jwt.SigningMethodHS256)
- claims := token.Claims.(jwt.MapClaims)
- for key, val := range m {
- claims[key] = val
- }
- if expire > 0 {
- claims["exp"] = time.Now().Add(time.Minute * 30).Unix()
- }
- tokenString, err := token.SignedString(s.secret)
- return tokenString, err
- }
|