jwt_test.go 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. package jwt
  2. import (
  3. "fmt"
  4. "testing"
  5. "time"
  6. )
  7. var pk = `-----BEGIN RSA PRIVATE KEY-----
  8. MIIEowIBAAKCAQEAnJpq2Sy91iGW3+EuG4V2ke59tITpGINzht0rO8WiRwu11W4p
  9. wakS4K4BbjvmC8YjaxXhKE5LHDw0IXvTdIDN7Fuu4qs9xWXIoK+nC3qWrVBtj/1o
  10. RJrYme1NenTXEgPlN1FOU6/9XQGgvb+1MSNqxknYo7183mHACvsIIuSTMEFhUbUw
  11. XYVQrCtACUILZ9wIDOEzclIY2ZPMTnL1vkvfj629KwGtAvpEyc96Y/HMSH5/VkiG
  12. p6L+k+NSjco9HntAGYTiQkfranvdqxRDUsKS53SbV3QSz1zc0l5OEyZDuxFTL7UC
  13. 7v0G/HVqz6mLpMje756PG/WEpwa/lADc/8FJ5QIDAQABAoIBAEsqUt6qevOsa55J
  14. lrfe92pT7kIXCUqazXiN75Jg6eLv2/b1SVWKsWTmIAmo9mHwWE+t0MRnz+VdgCgS
  15. JwxkRnKMDwT87Eky8Xku1h7MWEYXtH7IQqOrLwuyut1r907OT9adT9sbPaDGh0CM
  16. I4vSVA2YpELzUFvszyB2HRGiZINkHfdLsNxUKsHJOdXbv82RItwzmCYcZismnR3J
  17. P8THn06eoBNtlqwdFziuREOzjNnj6J/3glhR5mu4c4+AJoj0hmVaBDfac3GsQsbP
  18. x79QQPrUqH9UZ4szubYHXP0uRi/ARlHQ+GNp6foYIsevC0OtLdau0/ouFlfGkEep
  19. 3aIV5oECgYEAyyWrNhw+BhNFXsyPzEQ4/mO5ucup3cE/tAAtLiSckoXjmY8K7PQr
  20. xfKRCkuM1qpcxtYkbTs35aOdK48gL0NVd50QzrWFrQkQkVnpnJ1lYeVgEL1DmalD
  21. B55bwTdShcs0gEoKefZCvmotrmYdSpMGsapqqbZFrysFFzRDyDxnHfcCgYEAxVjA
  22. /dXxCEUjYFVC3i833lI/yiycJrhjIeffc6DqpSReuTU+i8Nh3sLiytaSqPFVASDS
  23. 08K3JwVguMTzDgrYkl365lm50WxcBuNgLkSqA90vE/H6gkRZVkuzOb7T+ZdDxf0s
  24. 7RH4aqeeOSiOcZ3uC+d53UArJFidETXbgguXkAMCgYA22Ynbx05b15IwYW0mCvmU
  25. fhqkdr/7lvT7RdztC4eW7D2itYOOrPKwtKjCrdluEHuSWDlnoMib4UxLeY6IFFcc
  26. P7VNCqf4K21kwXEZD0pTX1pLyr5Y2+G0SeaeSbCnXVFknhksCvjEbui8oOehvgbd
  27. q5S3E/bGsAfk1wDCLMTuywKBgACHrH0CBhOvm9i2YeeW2N+P+PviAslX1WxR4xe8
  28. ZuTqpBZ7Ph/B9pFSlKlWyi4J9+B45hgLfdJtAUV9welXvh0mg3X657TYRab/FVMK
  29. fCpmfangDHwtEtBYg7K0AH27GkN92pEIa1JeAN7GbRuBARKnHHyrn3IJiuJw8pX2
  30. 0gFhAoGBAIquI9sAB2dKEOMW+iQJkLH8Hh8/EWyslow+QJiyIsRe1l9jtkOxC5D3
  31. Hj4yO4j5LOWDMTgDcLsZTxbGiTzkNc/HghrNIevDAQdgjJQNl84zDjyyCA4r/MA7
  32. bYJTtYj8q6J0EDbRdT9b6hMclyzjNXdx2loJxR0R8WUeL1lDEPq8
  33. -----END RSA PRIVATE KEY-----`
  34. // 测试token生成
  35. func TestGenerateToken(t *testing.T) {
  36. jwtService := NewJwt(pk, time.Second*1000)
  37. token := jwtService.GenerateToken(1)
  38. if token == "" {
  39. t.Fatal("token生成失败")
  40. }
  41. fmt.Println(pk, token)
  42. }
  43. // 测试token解析
  44. func TestParseToken(t *testing.T) {
  45. jwtService := NewJwt(pk, time.Second*1000)
  46. token := jwtService.GenerateToken(999)
  47. if token == "" {
  48. t.Fatal("token生成失败")
  49. }
  50. uid, err := jwtService.ParseToken(token)
  51. if err != nil {
  52. t.Fatal("token解析失败", err)
  53. }
  54. if uid != 999 {
  55. t.Fatal("token解析失败")
  56. }
  57. }
  58. func BenchmarkJwtService_GenerateToken(b *testing.B) {
  59. jwtService := NewJwt(pk, time.Second*1000)
  60. b.ResetTimer()
  61. for i := 0; i < b.N; i++ {
  62. jwtService.GenerateToken(999)
  63. }
  64. }
  65. func BenchmarkJwtService_ParseToken(b *testing.B) {
  66. jwtService := NewJwt(pk, time.Second*1000)
  67. token := jwtService.GenerateToken(999)
  68. b.ResetTimer()
  69. for i := 0; i < b.N; i++ {
  70. _, _ = jwtService.ParseToken(token)
  71. }
  72. }