/
v.bolshakov
/
AIEcosystem-Testing
Обзор
Документация
Войти
/
v.bolshakov
/
AIEcosystem-Testing
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
dev
common/helpers/AuthHelper.php
113 строк
3 KB
Developer
Initial commit
03 авг 2026, 17:43
03 авг 2026, 17:43
7433917
Код
Авторство
О чём код?
<?php namespace common\helpers; use Yii; use Exception; use yii\base\InvalidConfigException; use yii\helpers\ArrayHelper; use yii\helpers\Url; use yii\helpers\VarDumper; /** * Расширение функций для работы с авторизацией * * @author Dmitry E. Semenov <sde.tomsk@gmail.com> * @copyright Self (c) 2019 */ class AuthHelper { /** * Сохранить временную зону пользователя * * @param $date * @return mixed * @throws Exception */ public static function setTimeZoneOffset($date) { $offset = DateHelper::getTimeZoneOffset($date); Yii::$app->session->set('user_tz_offset', $offset); return $offset; } /** * Получить временную зону пользователя - если не указано - получить временную зону установленную на сервере * * @return mixed */ public static function getTimeZoneOffset() { return Yii::$app->session->get('user_tz_offset', 0); } /** * Generate signature for API * * @param array $request_params * @param $secret_key * @return string */ public static function sig(array $request_params, $secret_key) { ksort($request_params); $params = ''; $skip = [ 'sig', 'apikey', 'suppress_response_code', 'access_token', 'access-token' ]; foreach ($request_params as $key => $value) { if (!in_array($key, $skip) and $value) { $params .= "$key=$value"; } } Yii::debug(VarDumper::dumpAsString([ 'hash_string' => $params . $secret_key ])); return md5($params . $secret_key); } /** * Получить ключ шифрования * * @param $key * @return mixed * @throws InvalidConfigException */ public static function getKey($key) { if ($the_key = ArrayHelper::getValue(Yii::$app->params, 'keys.' . $key)) { return $the_key; } else { throw new InvalidConfigException(Yii::t('app', 'Необходимо указать ключ шифрования {0}', [$key])); } } /** * Получить ссылку с подписью * * @param $url * @param $params * @return string * @throws InvalidConfigException */ public static function getUrl($url, $params) { $key = AuthHelper::getKey('api'); $sig = AuthHelper::sig($params, $key); $params['sig'] = $sig; $url_view = Yii::$app->urlManagerFrontend->createUrl($url); return $url_view . UrlHelper::query($params, false); } }