1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- package utils
- import (
- "fmt"
- "github.com/beego/beego/v2/core/logs"
- "github.com/dgrijalva/jwt-go"
- "time"
- )
- var (
- KEY = []byte("5Mb5Gdmb5x")
- )
- // 发放token
- func GenToken(account string) string {
- token := jwt.New(jwt.SigningMethodHS256)
- token.Claims = &jwt.StandardClaims{
- NotBefore: int64(time.Now().Unix()),
- ExpiresAt: int64(time.Now().Unix() + 90*24*60*60),
- Issuer: "hongze_mfyx",
- Subject: account,
- }
- ss, err := token.SignedString(KEY)
- if err != nil {
- logs.Error(err)
- return ""
- }
- return ss
- }
- // 校验token
- func CheckToken(account, token string) bool {
- t, err := jwt.Parse(token, func(*jwt.Token) (interface{}, error) {
- return KEY, nil
- })
- if err != nil {
- fmt.Println(err.Error())
- return false
- }
- if account != t.Claims.(jwt.MapClaims)["sub"] {
- return false
- }
- return t.Valid
- }
|