| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- package generatetoken
- import (
- "fmt"
- "github.com/cristalhq/jwt"
- "standard/token/avata/model"
- "time"
- )
- //生成token
- func GenerateTokenEntity(id string) (*model.OauthToken, error) {
- claim := model.TokenClaim{
- Id: id,
- Timestamp: time.Now().UnixNano(),
- }
- accessToken, err := generateToken("ACCESS_TOKEN_KEY", claim)
- if err != nil {
- return nil, fmt.Errorf("get access token failed,err:%s", err.Error())
- }
- refreshToken, err := generateToken("REFRESH_TOKEN_KEY", claim)
- if err != nil {
- return nil, fmt.Errorf("get refresh token failed,err:%s", err.Error())
- }
- return &model.OauthToken{
- Token: accessToken,
- ExpiredAt: time.Now().Add(time.Duration(7200) * time.Second),
- RefreshToken: refreshToken,
- RTokenExpiredAt: time.Now().Add(time.Duration(2592000) * time.Second),
- Id: id,
- }, nil
- }
- func generateToken(key string, claim interface{}) (string, error) {
- signer, err := jwt.NewSignerHS(jwt.HS256, []byte(key))
- if err != nil {
- return "", err
- }
- // create a Builder
- builder := jwt.NewBuilder(signer)
- // and build a Token
- token, err := builder.Build(&claim)
- if err != nil {
- return "", err
- }
- return token.String(), nil
- }
|