JwtTest.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. /**
  3. * 描述.
  4. *
  5. * @author nj <nj@gmail.com>
  6. * @date 2020-01-21 23:29:56
  7. */
  8. declare(strict_types=1);
  9. namespace HyperfTest\Features;
  10. use App\Repositories\Utils\JwtRepository;
  11. use HyperfTest\HttpTestCase;
  12. class JwtTest extends HttpTestCase
  13. {
  14. /**
  15. * 属性描述.
  16. *
  17. * @var JwtRepository|null
  18. */
  19. private $jwt = null;
  20. /**
  21. * 测试之前执行.
  22. */
  23. public function setUp():void
  24. {
  25. parent::setUp();
  26. $this->jwt = make(JwtRepository::class);
  27. }
  28. /**
  29. * 测试完毕后执行.
  30. */
  31. public function tearDown():void
  32. {
  33. parent::tearDown();
  34. }
  35. /**
  36. * 测试创建APP Jwt
  37. */
  38. public function testCreateAppJwt()
  39. {
  40. $user = [];
  41. $user['user_id'] = 'VS9LIC';
  42. $user['device_no'] = 'rrsepmmxj9cpenm9xmlosams3m9pycya';
  43. $user['device_type'] = 'A';
  44. $aud = 'app-users';
  45. $arrToken = $this->jwt->createAppJwt($user, $aud);
  46. var_dump($arrToken);
  47. $this->assertArrayHasKey('token', $arrToken);
  48. $this->assertArrayHasKey('expired_at', $arrToken);
  49. }
  50. /**
  51. * 测试创建后台 JWT
  52. */
  53. public function testCreateManageJwt()
  54. {
  55. $user = new \stdClass();
  56. $user->manager_id = 'YBJ66BSCJCBLBHSB';
  57. $user->role_id = 1;
  58. $arrToken = $this->jwt->createManageJwt($user);
  59. var_dump($arrToken);
  60. $this->assertArrayHasKey('token', $arrToken);
  61. $this->assertArrayHasKey('expired_at', $arrToken);
  62. }
  63. public function testValidateToken()
  64. {
  65. $token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczpcL1wvZ2Z3Lmdvb2dsZS5jb20iLCJhdWQiOiJhcHAtdXNlcnMiLCJleHAiOjE1Nzk2NzAyNDMsImp0aSI6ImRkYzUyMmI0Njg0MjRlMTk3ZTUwMmE0MTc4NjViYjRlIiwiaWF0IjoxNTc5NjI3MDQzLCJ1c2VyX2lkIjoiWUJKNjZCU0NKQ0JMQkhTQiIsImRldmljZV9ubyI6InJyc2VwbW14ajljcGVubTl4bWxvc2FtczNtOXB5Y3lhIn0.Ba3oKpa-xPZBb0lM5M9a57WX6qlwVhnlC37ctfNITEM';
  66. // 受众, app-user/manage-users
  67. $aud = 'app-users';
  68. $result = $this->jwt->validateToken($token, $aud);
  69. var_dump($result);
  70. $this->assertArrayHasKey('is_illegal', $result);
  71. $this->assertArrayHasKey('is_expired', $result);
  72. $this->assertArrayHasKey('is_valid', $result);
  73. $this->assertEquals(false, $result['is_illegal']);
  74. $this->assertEquals(false, $result['is_expired']);
  75. $this->assertEquals(true, $result['is_valid']);
  76. }
  77. }