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
}