1234567891011121314151617181920212223242526272829303132333435 |
- /*
- * 用户鉴权
- */
- package jwt
- import (
- "time"
- "github.com/golang-jwt/jwt/v4"
- )
- type JwtStruct struct {
- SecretKey string
- TimeOut int64
- }
- var UserJwt = &JwtStruct{
- SecretKey: "jianyuservice", //保持一致
- TimeOut: 600,
- }
- func (this *JwtStruct) GetToken(payloads map[string]interface{}) (string, error) {
- now := time.Now().Add(-10 * time.Second).Unix() //当前时间往前10s iat时间要在相应服务器时间之前 否则会报错Token used before issued
- claims := make(jwt.MapClaims)
- claims["exp"] = now + this.TimeOut
- claims["iat"] = now
- for k, v := range payloads {
- claims[k] = v
- }
- token := jwt.New(jwt.SigningMethodHS256)
- token.Claims = claims
- return token.SignedString([]byte(this.SecretKey))
- }
|