Мелкие улучшения для контроллера OauthController

This commit is contained in:
ErickSkrauch 2016-08-18 00:57:01 +03:00
parent 54ae453c4f
commit 433f560f48

View File

@ -44,20 +44,6 @@ class OauthController extends Controller {
]; ];
} }
/**
* @return \League\OAuth2\Server\AuthorizationServer
*/
protected function getServer() {
return Yii::$app->oauth->authServer;
}
/**
* @return \League\OAuth2\Server\Grant\AuthCodeGrant
*/
protected function getGrantType() {
return $this->getServer()->getGrantType('authorization_code');
}
/** /**
* Запрос, который должен проверить переданные параметры oAuth авторизации * Запрос, который должен проверить переданные параметры oAuth авторизации
* и сформировать ответ для нашего приложения на фронте * и сформировать ответ для нашего приложения на фронте
@ -181,6 +167,14 @@ class OauthController extends Controller {
return $response; return $response;
} }
/**
* Этот метод нужен за тем, что \League\OAuth2\Server\AuthorizationServer не предоставляет
* метода для проверки, можно ли выдавать refresh_token для пришедшего токена. Он просто
* выдаёт refresh_token, если этот grant присутствует в конфигурации сервера. Так что чтобы
* как-то решить эту проблему, мы не включаем RefreshTokenGrant в базовую конфигурацию сервера,
* а подключаем его только в том случае, если у auth_token есть право на рефреш или если это
* и есть запрос на refresh токена.
*/
private function attachRefreshTokenGrantIfNeedle() { private function attachRefreshTokenGrantIfNeedle() {
$grantType = Yii::$app->request->post('grant_type'); $grantType = Yii::$app->request->post('grant_type');
if ($grantType === 'authorization_code' && Yii::$app->request->post('code')) { if ($grantType === 'authorization_code' && Yii::$app->request->post('code')) {
@ -210,7 +204,7 @@ class OauthController extends Controller {
* *
* @return array * @return array
*/ */
private function buildSuccessResponse($queryParams, OauthClient $clientModel, $scopes) { private function buildSuccessResponse(array $queryParams, OauthClient $clientModel, array $scopes) {
return [ return [
'success' => true, 'success' => true,
// Возвращаем только те ключи, которые имеют реальное отношение к oAuth параметрам // Возвращаем только те ключи, которые имеют реальное отношение к oAuth параметрам
@ -251,4 +245,18 @@ class OauthController extends Controller {
return $response; return $response;
} }
/**
* @return \League\OAuth2\Server\AuthorizationServer
*/
private function getServer() {
return Yii::$app->oauth->authServer;
}
/**
* @return \League\OAuth2\Server\Grant\AuthCodeGrant
*/
private function getGrantType() {
return $this->getServer()->getGrantType('authorization_code');
}
} }