protected function tokenFromUser($user, $customClaims = []) { $cfg = $this->app->config->get('jwt'); $validator = new Tymon\JWTAuth\Validators\PayloadValidator(); $request = new Illuminate\Http\Request(); $claimFactory = new Tymon\JWTAuth\Claims\Factory(); $adapter = new App\Extensions\JWTAuth\NamshiAdapter($cfg['secret'], $cfg['algo']); $payloadFactory = new App\Extensions\JWTAuth\PayloadFactory($claimFactory, $request, $validator); $claims = ['sub' => $user->user_id, '_user' => $user]; $claims = array_merge($customClaims, $claims); $payload = $payloadFactory->make($claims); $token = $adapter->encode($payload->get()); return $token; }
public function testRefreshExpiredToken() { $user = $this->createUser(); $claims = [new UserClaim($user), new Subject(1), new Issuer('http://foo.bar'), new Expiration(123 - 3600), new NotBefore(123), new IssuedAt(123), new JwtId('foo')]; $validator = Mockery::mock('Tymon\\JWTAuth\\Validators\\PayloadValidator'); $validator->shouldReceive('setRefreshFlow->check'); $payload = new Payload($claims, $validator, true); $cfg = $this->app->config->get('jwt'); $adapter = new App\Extensions\JWTAuth\NamshiAdapter($cfg['secret'], $cfg['algo']); $token = $adapter->encode($payload->get()); $this->callRefreshToken($token); $body = json_decode($this->response->getContent()); $this->assertResponseStatus(401); $this->assertContains('expired', $body->message); }