41 lines
1.2 KiB
PHP
41 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace OAuth2\Storage;
|
|
|
|
use OAuth2\Encryption\Jwt;
|
|
|
|
class JwtAccessTokenTest extends BaseTest
|
|
{
|
|
/** @dataProvider provideStorage */
|
|
public function testSetAccessToken($storage)
|
|
{
|
|
if (!$storage instanceof PublicKey) {
|
|
// incompatible storage
|
|
return;
|
|
}
|
|
|
|
$crypto = new jwtAccessToken($storage);
|
|
|
|
$publicKeyStorage = Bootstrap::getInstance()->getMemoryStorage();
|
|
$encryptionUtil = new Jwt();
|
|
|
|
$jwtAccessToken = array(
|
|
'access_token' => rand(),
|
|
'expires' => time() + 100,
|
|
'scope' => 'foo',
|
|
);
|
|
|
|
$token = $encryptionUtil->encode($jwtAccessToken, $storage->getPrivateKey(), $storage->getEncryptionAlgorithm());
|
|
|
|
$this->assertNotNull($token);
|
|
|
|
$tokenData = $crypto->getAccessToken($token);
|
|
|
|
$this->assertTrue(is_array($tokenData));
|
|
|
|
/* assert the decoded token is the same */
|
|
$this->assertEquals($tokenData['access_token'], $jwtAccessToken['access_token']);
|
|
$this->assertEquals($tokenData['expires'], $jwtAccessToken['expires']);
|
|
$this->assertEquals($tokenData['scope'], $jwtAccessToken['scope']);
|
|
}
|
|
}
|