diff --git a/middleware/JWT.go b/middleware/JWT.go index 640305f..b451e00 100644 --- a/middleware/JWT.go +++ b/middleware/JWT.go @@ -73,3 +73,26 @@ func verifyToken(jwt, secret string) bool { return signature == parts[2] } + +//func main() { +// secret := "1234567890" +// // 当前时间戳 +// now := time.Now().Add(5 * time.Minute).Unix() +// tokenWithoutSign, err := createToken("1234567890", "zhangsan", now) +// if err != nil { +// fmt.Println(err) +// return +// } +// +// sign, err := signToken(tokenWithoutSign, secret) +// if err != nil { +// fmt.Println(err) +// return +// } +// +// jwt := fmt.Sprintf("%s.%s", tokenWithoutSign, sign) +// fmt.Println("JWT:", jwt) +// +// isValid := verifyToken(jwt, secret) +// fmt.Println("isValid:", isValid) +//} diff --git a/middleware/JWT_test.go b/middleware/JWT_test.go new file mode 100644 index 0000000..44b2be6 --- /dev/null +++ b/middleware/JWT_test.go @@ -0,0 +1,50 @@ +package middleware + +import ( + "fmt" + "testing" +) + +var err error +var secret string = "1234567890" +var token string = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6InpoYW5nc2FuIiwiaWF0IjoxNjIyNjQwMDAwfQ" +var signature string +var jwt string = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6InpoYW5nc2FuIiwiaWF0IjoxNjIyNjQwMDAwfQ.Trk6LMpzsyvNLaqWn2FEXEpB5PRyQjo600NoU6LARMo" + +func TestBase64Encode(t *testing.T) { + result := base64Encode([]byte("test")) + expected := "dGVzdA" + if result != expected { + t.Errorf("Expected %s, but got %s", expected, result) + } +} + +func TestCreateToken(t *testing.T) { + token, err = createToken("12345678920", "zhangsan", 1622640000) + println(token) + if err != nil { + t.Errorf("Expected nil, but got error %s", err) + } + if token == "" { + t.Errorf("Expected token, but got empty string") + } +} + +func TestSignToken(t *testing.T) { + signature, err = signToken(token, secret) + jwt = fmt.Sprintf("%s.%s", token, signature) + println(jwt) + if err != nil { + t.Errorf("Expected nil, but got error %s", err) + } + if signature == "" { + t.Errorf("Expected signature, but got empty string") + } +} + +func TestVerifyToken(t *testing.T) { + isValid := verifyToken(jwt, secret) + if !isValid { + t.Errorf("Expected true, but got false") + } +}