Golang uses JWT Token for authentication

package middleware
import (
"errors"
"log"
"time"
"github.com/golang-jwt/jwt"
)
var hmacSampleSecret = []byte("guge")
/ / CreateJwtToken token creation
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 ("------ Failed to create JWT token ------")
}
return tokenString
}
// CheckToken Checks whether the token is correct
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(" signature error ")
}
return hmacSampleSecret, nil
})
if err ! = nil {
Log.println ("====== Failed to parse token ======")
log.Println(err)
return false
}
right := false
if _, ok := token.Claims.(jwt.MapClaims);  ok && token.Valid {
right = true
}
return right
}

Leave a Reply

Your email address will not be published. Required fields are marked *

en_USEnglish