package middleware
import (
"errors"
"log"
"time"
"github.com/golang-jwt/jwt"
)
var hmacSampleSecret = []byte("guge")
//CreateJwtToken 创建token
func CreateJwtToken() string {
//https://github.com/golang-jwt/jwt
token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{
"foo": "bar",
"nbf": time.Date(2015, 10, 10, 12, 0, 0, 0, time.UTC).Unix(),
})
tokenString, err := token.SignedString(hmacSampleSecret)
if err != nil {
log.Println("------创建jwt token出错------")
}
return tokenString
}
// CheckToken 检查token是否正确
func CheckToken(tokenString string) bool {
token, err := jwt.Parse(tokenString, func(token *jwt.Token) (interface{}, error) {
if _, ok := token.Method.(*jwt.SigningMethodHMAC); !ok {
return nil, errors.New("签名错误")
}
return hmacSampleSecret, nil
})
if err != nil {
log.Println("====== 解析token出错 ======")
log.Println(err)
return false
}
right := false
if _, ok := token.Claims.(jwt.MapClaims); ok && token.Valid {
right = true
}
return right
}