You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
273 lines
9.8 KiB
273 lines
9.8 KiB
4 years ago
|
<?php
|
||
|
|
||
|
use common\auth\Identity;
|
||
|
use filsh\yii2\oauth2server\filters\auth\CompositeAuth;
|
||
|
use filsh\yii2\oauth2server\filters\ErrorToExceptionFilter;
|
||
|
use filsh\yii2\oauth2server\Module;
|
||
|
use filsh\yii2\oauth2server\Request;
|
||
|
use filsh\yii2\oauth2server\Response;
|
||
|
use OAuth2\GrantType\RefreshToken;
|
||
|
use OAuth2\GrantType\UserCredentials;
|
||
|
use yii\filters\AccessControl;
|
||
|
use yii\filters\auth\HttpBearerAuth;
|
||
|
use yii\filters\auth\QueryParamAuth;
|
||
|
use yii\filters\ContentNegotiator;
|
||
|
use yii\log\FileTarget;
|
||
|
use yii\web\JsonParser;
|
||
|
use yii\web\JsonResponseFormatter;
|
||
|
|
||
|
$params = array_merge(
|
||
|
require __DIR__ . '/../../common/config/params.php',
|
||
|
require __DIR__ . '/../../common/config/params-local.php',
|
||
|
require __DIR__ . '/params.php',
|
||
|
require __DIR__ . '/params-local.php'
|
||
|
);
|
||
|
|
||
|
return [
|
||
|
'id' => 'app-api',
|
||
|
'language' => 'ru',
|
||
|
'basePath' => dirname(__DIR__),
|
||
|
'bootstrap' => [
|
||
|
'log',
|
||
|
'common\bootstrap\SetUp',
|
||
|
'api\bootstrap\SetUp',
|
||
|
[
|
||
|
'class' => ContentNegotiator::class,
|
||
|
'formats' => [
|
||
|
'application/json' => 'json',
|
||
|
'application/xml' => 'xml',
|
||
|
]
|
||
|
]
|
||
|
],
|
||
|
'aliases' => [
|
||
|
'@staticRoot' => $params['staticPath'],
|
||
|
'@static' => $params['staticHostInfo'],
|
||
|
],
|
||
|
'controllerNamespace' => 'api\controllers',
|
||
|
'modules' => [
|
||
|
'oauth2' => [
|
||
|
'class' => Module::class,
|
||
|
'tokenParamName' => 'accessToken',
|
||
|
'tokenAccessLifetime' => 3600 * 24,
|
||
|
'storageMap' => [
|
||
|
'user_credentials' => Identity::class,
|
||
|
],
|
||
|
'components' => [
|
||
|
'request' => function () {
|
||
|
return Request::createFromGlobals();
|
||
|
},
|
||
|
'response' => [
|
||
|
'class' => Response::class,
|
||
|
],
|
||
|
],
|
||
|
'grantTypes' => [
|
||
|
'user_credentials' => [
|
||
|
'class' => UserCredentials::class,
|
||
|
],
|
||
|
'refresh_token' => [
|
||
|
'class' => RefreshToken::class,
|
||
|
'always_issue_new_refresh_token' => true
|
||
|
],
|
||
|
],
|
||
|
],
|
||
|
],
|
||
|
'components' => [
|
||
|
'request' => [
|
||
|
'baseUrl' => '',
|
||
|
'cookieValidationKey' => $params['cookieValidationKey'],
|
||
|
'parsers' => [
|
||
|
'application/json' => JsonParser::class,
|
||
|
],
|
||
|
],
|
||
|
'response' => [
|
||
|
'formatters' => [
|
||
|
'json' => [
|
||
|
'class' => JsonResponseFormatter::class,
|
||
|
'prettyPrint' => YII_DEBUG,
|
||
|
'encodeOptions' => JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE,
|
||
|
],
|
||
|
],
|
||
|
],
|
||
|
'user' => [
|
||
|
'identityClass' => Identity::class,
|
||
|
'enableAutoLogin' => false,
|
||
|
'enableSession' => false,
|
||
|
/*'identityClass' => 'common\auth\Identity',
|
||
|
'enableAutoLogin' => true,
|
||
|
'identityCookie' => ['name' => '_identity', 'httpOnly' => true, 'domain' => $params['cookieDomain']],
|
||
|
'loginUrl' => ['auth/auth/login'],*/
|
||
|
],
|
||
|
/*'session' => [
|
||
|
'name' => '_session',
|
||
|
'class' => 'yii\web\DbSession',
|
||
|
'writeCallback' => function ($session) {
|
||
|
return [
|
||
|
'user_id' => Yii::$app->user->id
|
||
|
];
|
||
|
},
|
||
|
'cookieParams' => [
|
||
|
'domain' => $params['cookieDomain'],
|
||
|
'httpOnly' => true,
|
||
|
],
|
||
|
],*/
|
||
|
'log' => [
|
||
|
'traceLevel' => YII_DEBUG ? 3 : 0,
|
||
|
'targets' => [
|
||
|
[
|
||
|
'class' => FileTarget::class,
|
||
|
'levels' => ['error', 'warning'],
|
||
|
],
|
||
|
],
|
||
|
],
|
||
|
'backendUrlManager' => require __DIR__ . '/../../backend/config/urlManager.php',
|
||
|
'frontendUrlManager' => require __DIR__ . '/../../frontend/config/urlManager.php',
|
||
|
'urlManager' => [
|
||
|
'enablePrettyUrl' => true,
|
||
|
'enableStrictParsing' => true,
|
||
|
'showScriptName' => false,
|
||
|
'rules' => [
|
||
|
'' => 'site/index',
|
||
|
'GET offer' => 'site/offer',
|
||
|
|
||
|
'GET profile' => 'user/profile/index',
|
||
|
'PUT profile' => 'user/profile/update',
|
||
|
'GET profile/avatar' => 'user/profile/avatar-get',
|
||
|
'POST profile/avatar' => 'user/profile/avatar-set',
|
||
|
|
||
|
'POST oauth2/<action:\w+>' => 'oauth2/rest/<action>',
|
||
|
|
||
|
'POST auth/signup' => 'auth/signup/request',
|
||
|
'POST auth/reset/request' => 'auth/reset/request',
|
||
|
'POST auth/reset/check' => 'auth/reset/check',
|
||
|
'POST auth/reset/confirm' => 'auth/reset/confirm',
|
||
|
],
|
||
|
],
|
||
|
'i18n' => [
|
||
|
'translations' => [
|
||
|
'modules/oauth2/*' => [
|
||
|
'class' => 'yii\i18n\PhpMessageSource',
|
||
|
'basePath' => '@api/messages',
|
||
|
],
|
||
|
'user' => [
|
||
|
'class' => 'yii\i18n\PhpMessageSource',
|
||
|
'basePath' => '@frontend/messages',
|
||
|
],
|
||
|
'auth' => [
|
||
|
'class' => 'yii\i18n\PhpMessageSource',
|
||
|
'basePath' => '@frontend/messages',
|
||
|
],
|
||
|
'main' => [
|
||
|
'class' => 'yii\i18n\PhpMessageSource',
|
||
|
'basePath' => '@frontend/messages',
|
||
|
],
|
||
|
],
|
||
|
],
|
||
|
/*'errorHandler' => [
|
||
|
'errorAction' => 'site/error',
|
||
|
],
|
||
|
'backendUrlManager' => require __DIR__ . '/../../backend/config/urlManager.php',
|
||
|
'frontendUrlManager' => require __DIR__ . '/urlManager.php',
|
||
|
'urlManager' => function () {
|
||
|
return Yii::$app->get('frontendUrlManager');
|
||
|
},*/
|
||
|
/*'i18n' => [
|
||
|
'translations' => [
|
||
|
'post' => [
|
||
|
'class' => 'yii\i18n\PhpMessageSource',
|
||
|
'basePath' => '@frontend/messages',
|
||
|
],
|
||
|
'slider' => [
|
||
|
'class' => 'yii\i18n\PhpMessageSource',
|
||
|
'basePath' => '@frontend/messages',
|
||
|
],
|
||
|
'auth' => [
|
||
|
'class' => 'yii\i18n\PhpMessageSource',
|
||
|
'basePath' => '@frontend/messages',
|
||
|
],
|
||
|
'user' => [
|
||
|
'class' => 'yii\i18n\PhpMessageSource',
|
||
|
'basePath' => '@frontend/messages',
|
||
|
],
|
||
|
'main' => [
|
||
|
'class' => 'yii\i18n\PhpMessageSource',
|
||
|
'basePath' => '@frontend/messages',
|
||
|
],
|
||
|
],
|
||
|
],*
|
||
|
'view' => [
|
||
|
'theme' => [
|
||
|
'basePath' => '@webroot/themes/sport',
|
||
|
'baseUrl' => '@web/themes/sport',
|
||
|
'pathMap' => [
|
||
|
'@frontend/views' => '@webroot/themes/sport',
|
||
|
'@frontend/widgets' => '@webroot/themes/sport/widgets',
|
||
|
],
|
||
|
],
|
||
|
],
|
||
|
'assetManager' => [
|
||
|
'bundles' => [
|
||
|
'yii\web\JqueryAsset' => [
|
||
|
'sourcePath' => '@frontend/assets/libs/jquery321', // do not publish the bundle
|
||
|
'js' => [
|
||
|
YII_ENV_DEV ? 'jquery-3.2.1.js' : 'jquery-3.2.1.min.js'
|
||
|
],
|
||
|
],
|
||
|
'yii\bootstrap\BootstrapAsset' => [
|
||
|
'sourcePath' => '@frontend/assets/libs/bootstrap4/css', // do not publish the bundle
|
||
|
'css' => [
|
||
|
YII_ENV_DEV ? 'bootstrap.css' : 'bootstrap.min.css'
|
||
|
],
|
||
|
],
|
||
|
'yii\bootstrap\BootstrapPluginAsset' => [
|
||
|
'sourcePath' => '@frontend/assets/libs/bootstrap4/js', // do not publish the bundle
|
||
|
'js' => [
|
||
|
YII_ENV_DEV ? 'bootstrap.js' : 'bootstrap.min.js'
|
||
|
],
|
||
|
'depends' => [
|
||
|
'yii\web\JqueryAsset',
|
||
|
'yii\bootstrap\BootstrapAsset',
|
||
|
],
|
||
|
],
|
||
|
],
|
||
|
],*/
|
||
|
],
|
||
|
'as authenticator' => [
|
||
|
'class' => CompositeAuth::class,
|
||
|
'except' => [
|
||
|
'site/index',
|
||
|
'site/offer',
|
||
|
'oauth2/rest/token',
|
||
|
'auth/reset/check',
|
||
|
'auth/reset/confirm',
|
||
|
'auth/reset/request',
|
||
|
'auth/signup/request'
|
||
|
],
|
||
|
'authMethods' => [
|
||
|
['class' => 'yii\filters\auth\HttpBearerAuth'],
|
||
|
['class' => 'yii\filters\auth\QueryParamAuth', 'tokenParam' => 'accessToken'],
|
||
|
]
|
||
|
],
|
||
|
'as access' => [
|
||
|
'class' => AccessControl::class,
|
||
|
'except' => [
|
||
|
'site/index',
|
||
|
'site/offer',
|
||
|
'oauth2/rest/token',
|
||
|
'auth/reset/check',
|
||
|
'auth/reset/confirm',
|
||
|
'auth/reset/request',
|
||
|
'auth/signup/request'
|
||
|
],
|
||
|
'rules' => [
|
||
|
[
|
||
|
'allow' => true,
|
||
|
'roles' => ['@'],
|
||
|
],
|
||
|
],
|
||
|
],
|
||
|
'as exceptionFilter' => [
|
||
|
'class' => ErrorToExceptionFilter::class,
|
||
|
],
|
||
|
'params' => $params,
|
||
|
];
|