PM-1873 "RefreshToken not recreated after using it to generate..." SOLVED
Issue:
RefreshToken not recreated after using it to generate another accessToken
Cause:
Nuevo requerimiento de funciones
Solution:
Se esta definiendo el flag "always_issue_new_refresh_token" con "true",
esto para poder generar un nuevo refresh-token cuando se solicita
un access-token usando un refresh-token
This commit is contained in:
@@ -175,9 +175,11 @@ class PmPdo implements \OAuth2\Storage\AuthorizationCodeInterface,
|
|||||||
{
|
{
|
||||||
$access_token = new \OauthAccessTokens();
|
$access_token = new \OauthAccessTokens();
|
||||||
$access_token->load($token);
|
$access_token->load($token);
|
||||||
|
|
||||||
$stmt = $this->db->prepare(sprintf('DELETE FROM %s WHERE ACCESS_TOKEN = :token', $this->config['access_token_table']));
|
$stmt = $this->db->prepare(sprintf('DELETE FROM %s WHERE ACCESS_TOKEN = :token', $this->config['access_token_table']));
|
||||||
$stmt->execute(compact('token'));
|
$stmt->execute(compact('token'));
|
||||||
$stmt = $this->db->prepare(sprintf('DELETE FROM %s WHERE EXPIRES>%s', $this->config['refresh_token_table'], "'".Date('Y-m-d H:i:s')."'"));
|
|
||||||
|
$stmt = $this->db->prepare(sprintf("DELETE FROM %s WHERE EXPIRES < %s", $this->config["refresh_token_table"], "'" . date("Y-m-d H:i:s") . "'"));
|
||||||
return $stmt->execute(compact('token'));
|
return $stmt->execute(compact('token'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -68,7 +68,10 @@ class Server implements iAuthenticate
|
|||||||
$this->server->addGrantType(new \ProcessMaker\Services\OAuth2\PmClientCredentials($this->storage));
|
$this->server->addGrantType(new \ProcessMaker\Services\OAuth2\PmClientCredentials($this->storage));
|
||||||
|
|
||||||
// Add the "Refresh token" grant type
|
// Add the "Refresh token" grant type
|
||||||
$this->server->addGrantType(new \OAuth2\GrantType\RefreshToken($this->storage));
|
$this->server->addGrantType(new \OAuth2\GrantType\RefreshToken(
|
||||||
|
$this->storage,
|
||||||
|
array("always_issue_new_refresh_token" => true)
|
||||||
|
));
|
||||||
|
|
||||||
// create some users in memory
|
// create some users in memory
|
||||||
//$users = array('bshaffer' => array('password' => 'brent123', 'first_name' => 'Brent', 'last_name' => 'Shaffer'));
|
//$users = array('bshaffer' => array('password' => 'brent123', 'first_name' => 'Brent', 'last_name' => 'Shaffer'));
|
||||||
@@ -261,7 +264,9 @@ class Server implements iAuthenticate
|
|||||||
if ($returnResponse) {
|
if ($returnResponse) {
|
||||||
return $response;
|
return $response;
|
||||||
} else {
|
} else {
|
||||||
die($response->send());
|
$response->send();
|
||||||
|
|
||||||
|
exit(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -279,9 +284,11 @@ class Server implements iAuthenticate
|
|||||||
if ($request == null) {
|
if ($request == null) {
|
||||||
$request = \OAuth2\Request::createFromGlobals();
|
$request = \OAuth2\Request::createFromGlobals();
|
||||||
}
|
}
|
||||||
$response = $this->server->handleTokenRequest($request);
|
|
||||||
|
$response = $this->server->handleTokenRequest($request); //Set/Get token //PmPdo->setAccessToken()
|
||||||
|
|
||||||
$token = $response->getParameters();
|
$token = $response->getParameters();
|
||||||
|
|
||||||
if (array_key_exists('access_token', $token)
|
if (array_key_exists('access_token', $token)
|
||||||
&& array_key_exists('refresh_token', $token)
|
&& array_key_exists('refresh_token', $token)
|
||||||
) {
|
) {
|
||||||
|
|||||||
Reference in New Issue
Block a user