mirror of
https://github.com/elyby/accounts.git
synced 2024-11-27 01:02:06 +05:30
Мелкие улучшения для контроллера OauthController
This commit is contained in:
parent
54ae453c4f
commit
433f560f48
@ -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');
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user