public function OAuth2ServerTest::testJwtBearerGrantType in OAuth2 Server 8
Same name and namespace in other branches
- 2.0.x tests/src/Functional/OAuth2ServerTest.php \Drupal\Tests\oauth2_server\Functional\OAuth2ServerTest::testJwtBearerGrantType()
Tests the "JWT bearer" grant type.
File
- tests/
src/ Functional/ OAuth2ServerTest.php, line 269
Class
- OAuth2ServerTest
- The OAuth2 Server admin test case.
Namespace
Drupal\Tests\oauth2_server\FunctionalCode
public function testJwtBearerGrantType() {
$request_time = \Drupal::time()
->getRequestTime();
$sub_property = \Drupal::config('oauth2_server.oauth')
->get('user_sub_property');
$jwt_util = new Jwt();
$user = $this
->drupalCreateUser([
'use oauth2 server',
]);
$this
->drupalLogin($user);
$token_url = $this
->buildUrl(new Url('oauth2_server.token'));
$jwt_data = [
'iss' => $this->clientId,
'exp' => $request_time + 1000,
'iat' => $request_time,
'sub' => $user->{$sub_property}->value,
'aud' => $token_url,
'jti' => '123456',
];
$data = [
'grant_type' => 'urn:ietf:params:oauth:grant-type:jwt-bearer',
'assertion' => $jwt_util
->encode($jwt_data, $this->privateKey, 'RS256'),
];
$response = $this
->httpPostRequest($token_url, $data, FALSE);
$this
->assertEqual($response
->getStatusCode(), 200, 'The token request completed successfully');
$payload = json_decode($response
->getBody());
$this
->assertTokenResponse($payload, FALSE);
}