Смена пароля не чего не дает.
Смена пароля не чего не дает.
Здравствуйте.
Делаю авторизацию на сайте, захожу под паролем в браузере хром и еще открываю вкладку в режиме инкогнито и там под этим юзером авторизируюсь. Потом в инкогнито вкладке меняю пароль. Потом обновляю первую вкладку и авторизация так и осталась, а должна была слететь.
В базе данных поле authKey меняется при смене пароля.
Т.е. если кто то узнал мой пароль, и вошел с другого компа, потом я на своем компе пароль сменил, то у него авторизация так и останется. Смена пароль с аускэй не чего не дает.
Делаю авторизацию на сайте, захожу под паролем в браузере хром и еще открываю вкладку в режиме инкогнито и там под этим юзером авторизируюсь. Потом в инкогнито вкладке меняю пароль. Потом обновляю первую вкладку и авторизация так и осталась, а должна была слететь.
В базе данных поле authKey меняется при смене пароля.
Т.е. если кто то узнал мой пароль, и вошел с другого компа, потом я на своем компе пароль сменил, то у него авторизация так и останется. Смена пароль с аускэй не чего не дает.
Сайт по работе в Украине: https://jobis.com.ua/. Сайт по поиску строителей: https://stroyzakaz.com.ua/
Создание сайтов в Киеве: https://webplus.com.ua/ по доступной цене.
Создание сайтов в Киеве: https://webplus.com.ua/ по доступной цене.
Re: Смена пароля не чего не дает.
Авторизация на куках?
getAuthKey(): it returns a key used to verify cookie-based login. The key is stored in the login cookie and will be later compared with the server-side version to make sure the login cookie is valid.
getAuthKey(): it returns a key used to verify cookie-based login. The key is stored in the login cookie and will be later compared with the server-side version to make sure the login cookie is valid.
Re: Смена пароля не чего не дает.
в модели user все это есть:
Код: Выделить всё
public function getAuthKey()
{
return $this->auth_key;
}
/**
* {@inheritdoc}
*/
public function validateAuthKey($authKey)
{
return $this->getAuthKey() === $authKey;
}
Может надо добавить где то в rules validateAuthKey , так почему изначально в дефолтную модель User оно не добавлено!
Попробовал даже вариант с хранением сессий в базе yii\web\DbSession но все тоже, авторизация на всех компах, хоть и сменил пароль.
Я даже для интереса попробовал войти в личный кабинет сайта https://yiiframework.ru с двух браузерах и сменить в одном пароль, так в другом браузере авторизация так и осталась.
Сайт по работе в Украине: https://jobis.com.ua/. Сайт по поиску строителей: https://stroyzakaz.com.ua/
Создание сайтов в Киеве: https://webplus.com.ua/ по доступной цене.
Создание сайтов в Киеве: https://webplus.com.ua/ по доступной цене.
Re: Смена пароля не чего не дает.
Прочитал.
У меня ситуация такая. Достался мне проект на доработку,, до этого им другой прогер занимался, и он авторизировался как админ и сохранил сам куки. Теперь я проектом занимаюсь, я сменил пароль, но этот первый прогер по старому кокеесу успешно авторизируется. Я менял authkey но толку нет.
Авторизация пропадает когда браузер закрыть, но если потом открыть firefox с расширением edit cockies и вставить куки то можно авторизироваться успешно.
Как в laravel фреймворке с этим дела, может кто знает?
Re: Смена пароля не чего не дает.
Провел эксперимент!
Взял для теста сам сайт https://www.yiiframework.ru - потому что он реализован на yii2
Авторизировался на нем в браузере хром, потом зашел в настройки браузера и скопировал кукки в текстовый файл.
Потом авторизировался через браузер firefox.
Потом в хроме сменил пароль в аккаунте.
Потом обновил firefox - но авторизация так и осталась.
Потом ушел на два часа, вернувшись открыл firefox и авторизация так и была, я думал может время ее истечет.
Потом для теста открыл в firefox приватный режим и зашел на сайта, и через расширение edit cockie ввел тот старый (со старым authKey - потому что он в базе поменялся когда я пароль менял) до изменения пароля с файла ввел кукки. И вошел успешно в личный кабинет.
Мне yii2 нравится. Но авторизация меня очень расстраивает и пугает!
Взял для теста сам сайт https://www.yiiframework.ru - потому что он реализован на yii2
Авторизировался на нем в браузере хром, потом зашел в настройки браузера и скопировал кукки в текстовый файл.
Потом авторизировался через браузер firefox.
Потом в хроме сменил пароль в аккаунте.
Потом обновил firefox - но авторизация так и осталась.
Потом ушел на два часа, вернувшись открыл firefox и авторизация так и была, я думал может время ее истечет.
Потом для теста открыл в firefox приватный режим и зашел на сайта, и через расширение edit cockie ввел тот старый (со старым authKey - потому что он в базе поменялся когда я пароль менял) до изменения пароля с файла ввел кукки. И вошел успешно в личный кабинет.
Мне yii2 нравится. Но авторизация меня очень расстраивает и пугает!
Сайт по работе в Украине: https://jobis.com.ua/. Сайт по поиску строителей: https://stroyzakaz.com.ua/
Создание сайтов в Киеве: https://webplus.com.ua/ по доступной цене.
Создание сайтов в Киеве: https://webplus.com.ua/ по доступной цене.
Re: Смена пароля не чего не дает.
вот статья Alexander Makarov - (Authentication) - https://github.com/yiisoft/yii2/blob/ma ... ication.md
в ней он приводит пример:
По идеи как только сменился auth_key то сразу должно разлогинеть, потому что в кукки остается старый auth_key , а в базе мы поменяли его и тут же при обновлении страницы должно сработать validateAuthKey($authKey) и увидеть что в кукки auth_key не соответствует тем что в базе у юзера.
Мне бы хотелось чтобы кто то из разработчиков yii2 дал мне хоть короткий ответ.
в ней он приводит пример:
Код: Выделить всё
class User extends ActiveRecord implements IdentityInterface
{
......
public function beforeSave($insert)
{
if (parent::beforeSave($insert)) {
if ($this->isNewRecord) {
$this->auth_key = \Yii::$app->security->generateRandomString();
}
return true;
}
return false;
}
}
Мне бы хотелось чтобы кто то из разработчиков yii2 дал мне хоть короткий ответ.
Сайт по работе в Украине: https://jobis.com.ua/. Сайт по поиску строителей: https://stroyzakaz.com.ua/
Создание сайтов в Киеве: https://webplus.com.ua/ по доступной цене.
Создание сайтов в Киеве: https://webplus.com.ua/ по доступной цене.
Re: Смена пароля не чего не дает.
в этом примере только при создании (isNewRecord) создается auth_key.webplus писал(а): ↑2019.05.18, 11:44Код: Выделить всё
public function beforeSave($insert) { if (parent::beforeSave($insert)) { if ($this->isNewRecord) { $this->auth_key = \Yii::$app->security->generateRandomString(); } return true; } return false; }
Но в своем проекте я при изменении пароля вызываю из модели User - generateAuthKey() и разлогирование так и не происходит!
Сайт по работе в Украине: https://jobis.com.ua/. Сайт по поиску строителей: https://stroyzakaz.com.ua/
Создание сайтов в Киеве: https://webplus.com.ua/ по доступной цене.
Создание сайтов в Киеве: https://webplus.com.ua/ по доступной цене.
Re: Смена пароля не чего не дает.
Исправил!
Создал компонент https://github.com/borysenko/yii2-user-component - устанавливается через composer.
Оказывается валидация auth_key не где не запускалась!
Протестируйте кому не лень. В двух разных браузерах залогиньтесь и в одном смените пароль с auth_key, разлогинет сразу в обеих при смене auth_key.
Может пригодится кому то!
Сайт по работе в Украине: https://jobis.com.ua/. Сайт по поиску строителей: https://stroyzakaz.com.ua/
Создание сайтов в Киеве: https://webplus.com.ua/ по доступной цене.
Создание сайтов в Киеве: https://webplus.com.ua/ по доступной цене.
Re: Смена пароля не чего не дает.
Ты не внимательный. Я в самом начале спросил "авторизация на куках?" У тебя авторизация не на куках, поэтому у тебя не вызывается validateAuthKey().
Там разобраться что к чему раз плюнуть https://github.com/yiisoft/yii2/blob/ma ... b/User.php
Там разобраться что к чему раз плюнуть https://github.com/yiisoft/yii2/blob/ma ... b/User.php
Re: Смена пароля не чего не дает.
Весь инет перерыл чтобы понять что в конфиге указать , чтобы авторизация на куках была, так и не нашел. Приведите пример какое свойства в конфиге прописать чтобы на куках была? Спасибо.
Наверно enableSession поставить false.
И какой способ более безопасный с сессиями или куками?
Сайт по работе в Украине: https://jobis.com.ua/. Сайт по поиску строителей: https://stroyzakaz.com.ua/
Создание сайтов в Киеве: https://webplus.com.ua/ по доступной цене.
Создание сайтов в Киеве: https://webplus.com.ua/ по доступной цене.
Re: Смена пароля не чего не дает.
Проверил отключить сессии
так после ввода пароля не чего не авторизируется!
Напиши SiZE как ты отключал сессию и включал куки?
Код: Выделить всё
'enableSession' => false
Напиши SiZE как ты отключал сессию и включал куки?
Сайт по работе в Украине: https://jobis.com.ua/. Сайт по поиску строителей: https://stroyzakaz.com.ua/
Создание сайтов в Киеве: https://webplus.com.ua/ по доступной цене.
Создание сайтов в Киеве: https://webplus.com.ua/ по доступной цене.
Re: Смена пароля не чего не дает.
Этот параметр у меня и был включен. При этом параметре валидация auth_key запускается только один раз (при запуске браузера и переходе на сайт).
Если этот параметр включен и изменить auth_key то при открытии браузера авторизацию сбросит. Но если два разных браузера были открыты и авторизованы, то смена auth_key не чего не даст, т.е. при обновлении страницы любого браузера, валидация не сработает. Только после закрытия браузера и открытия.
Немного переделал свое расширение https://github.com/borysenko/yii2-user-component вынес запуск валидации в init(). И это решает данную проблему. Достаточно сменить auth_key и сразу разлогиневает (без закрытия и открытия браузера) - а это как и должно быть
Сайт по работе в Украине: https://jobis.com.ua/. Сайт по поиску строителей: https://stroyzakaz.com.ua/
Создание сайтов в Киеве: https://webplus.com.ua/ по доступной цене.
Создание сайтов в Киеве: https://webplus.com.ua/ по доступной цене.
Re: Смена пароля не чего не дает.
Ну так я при смене пароле вызываю $user->generateAuthKey() но разлогирования не происходит.
Разлогирование происходит если браузер закрыть, а потом открыть.
Если например под двумя разными браузерами быть авторизованными , то потом в одном браузере сменить AuthKey (это может быть как вы пишите когда пароль меняешь вызывать $user->generateAuthKey()), то во втором браузере не разлогинет, пока его не закроешь. Получается что еще и во втором браузере можно менять пароль.
Свое расширение, что я сделал проверяет AuthKey при каждом обновлении страницы и сразу разлогиневает если AuthKey не валидный. Т.е. в двух браузерах не получится быть авторизованным если в одном поменять AuthKey
Сайт по работе в Украине: https://jobis.com.ua/. Сайт по поиску строителей: https://stroyzakaz.com.ua/
Создание сайтов в Киеве: https://webplus.com.ua/ по доступной цене.
Создание сайтов в Киеве: https://webplus.com.ua/ по доступной цене.
Re: Смена пароля не чего не дает.
Вот пишет klimov-paul :
Currently authenticated user simply unable to provide 'auth key' value - he does not have a source for it.
вот перевод: В настоящее время аутентифицированный пользователь просто не может предоставить значение ключа авторизации - у него нет источника для него.
Но может с того времени что то в браузерах изменилось и браузер дает предоставления значения куки сайту. Но ведь изменения что я сделал работают. Вот что я сделал:
Код: Выделить всё
class User extends \yii\web\User
{
public function init()
{
$this->enableAutoLogin = true;
$this->getIdentityAndDurationFromCookie();
parent::init();
}
}
Код: Выделить всё
elseif (!$identity->validateAuthKey($authKey)) {
if(Yii::$app->session->has($this->idParam)) {
Yii::$app->session->remove($this->idParam);
$this->removeIdentityCookie();
}
}
Сайт по работе в Украине: https://jobis.com.ua/. Сайт по поиску строителей: https://stroyzakaz.com.ua/
Создание сайтов в Киеве: https://webplus.com.ua/ по доступной цене.
Создание сайтов в Киеве: https://webplus.com.ua/ по доступной цене.