Jump to content

soka

Актив
  • В сети

  • Количество сообщений

    142
  • Reputation

    47 soka's Reputation

Posts posted by soka

  1. Azazel,

    1. Мне показалось что до вас плохо доходит. Впрочем не показалось. 

    2. Сейчас я скопипастю левую цитату и скажу что это от разработчика. И пох что мне говорят будто это не он, и пох что от другого ника, и в контактных данных указанно совсем другое. Он же может писать под разными никами и я точно знаю что он.

    3. Видимо имеет, раз ответ неправильный и им и себя и других вводите в заблуждения. Dows вам правильно ответил в этой теме.

    4.  Научитесь читать и тогда не придется посылать людей из-за своего невежества.

  2. $id = \IPS\Request::i()->id

    только надо учитывать что этот плагин "php-код" должен отработать только на странице пользователя, иначе \IPS\Request::i()->id может имеет другое значение.
    Если это плагин класса IPS\core\modules\front\members\profile то там уже загружен пользователь в $this->member

  3. Вам же сказали зачем, нахрена переспрашивать? 

    29 минут назад, soka сказал:

    Затем, что этот ответ не от разработчика этого плагина. Прежде чем приводить ответы "разрабочтиков" надо сначала посмотреть в описание хука.

    Имя разработчика есть в название этой темы - siv. Имя также есть в плагине. Там же находятся и его адрес. А теперь скажите, где ваше сообщение от разработчика если отвечал вообще другой человек? Научитесь читать описания.

  4. В 14.11.2016 в 00:28, Azazel сказал:

    Зачем?

    Затем, что этот ответ не от разработчика этого плагина. Прежде чем приводить ответы "разрабочтиков" надо сначала посмотреть в описание хука.

  5. В 04.11.2016 в 16:33, Azazel сказал:

    Вот что разработчик плагина ответил:

    Откройте plugin information и посмотрите кто является разработчиком этого плагина. 

  6.  

    В 02.10.2016 в 13:02, WOLF сказал:

    если у вас бомбит в одном месте, то просто обходите стороной. 

    Топик стартер получил ответ по существу - обратится к автору хука ибо здесь такой функции нету, нежели предлагать ковыряться в каких-то местах которых здесь нету. Лучших вариантов я пока не увидел. Берегите пуканы.

  7. 2 часа назад, soka сказал:

    проблема с сменой паролем на удаленном сайте решается перемещением метода внешней авторизации вверх

    Более того, даже этого не требуется. Будут выполнятся все доступные методы авторизации пока авторизация не пройдет успешно. Для пущей синхронизации, после авторизации можно проверить если пароль пользователя не сменился в противном случае его обновить. 

    52 минуты назад, greykoo сказал:

    soka, ну так возьми и сделай человеку как положено

    На предыдущей странице разве не видно? То-то я здесь так много талдычу.

    Пароль в вп хешируется библиотекой phpass (так раньше было), по умолчанию по алгоритму blow fish.

     

  8. 13 минут назад, greykoo сказал:

    z8ToT8z, soka, протестируй смену пароля из админки 

    wowautch.xml

    Насколько я знаю несоответствие количество аргументов у перегружаемых методов вызывает ошибки типа trict Standards Declaration of should be compatible with . Лучше использовать глобальные переменные или свойство класса.

  9. Объясните мне кто нибудь, в чем сакральный смысл качать хук с форума автора и приходить на чужом форуме спрашивать его поддержку? Пусть даже если и скачен с другого форума, в хуке есть адрес и никнейма автора, у него и спрашивайте.

  10. 2 часа назад, greykoo сказал:

    Не требует пароль , я выше написал. IPS хранит пустые пароли в таком методе авторизации - по этому я так же делал. Это сервер. Там менять пароли можно в других скриптах и они не связанные с IPS, да и в игре наверное тоже можно менять пароль - по этому так делать плавильней , по этому в IPS додумались - не хранить пароли , ибо на другой стороне он сможет измениться где угодно без обратного ответа. 

    Блин, вроде программист а приходится на пальцах объяснять. Столько слов, что в итоге и сам запутался. Речь не о том, сохраняется пароль или нет, это без разницы, проблема с сменой паролем на удаленном сайте решается перемещением метода внешней авторизации вверх, чтобы он первый отработал или вообще отключением внутреннего. Не хотите сохранять, не храните (но я бы все таки в таком случае вызвал дефолтный  метод _createMember а потом удалил пароль, все таки плахой тон перегружать методы не вызывая родительский если вдруг какому нибудь другому хуку потребуется его перегрузить). А речь о том, что будет если какой нидубь апи интерфейс вызовет смену пароля? Например, смена пароля какому нибудь пользователю из АЦ (хз если ли такая функция в четверке, но в api это точно есть)? Мне кажется \IPS\Member::loggedIn()->name вернет не совсем соответствующие данные. Т.е. если нет значения у переменной $_POST['auth'], будет использоваться имя текущего пользователя если он есть, и даже если вы вернете нулл пароль все равно сбросится, потому что в changePassword нет никакой проверки. Проще уже не знаю как объяснить, извините.

                        if( !empty( $_POST['auth'] ) ) {
                            $username =  $_POST['auth'];
                        }else if( !empty( \IPS\Member::loggedIn()->name ) ) {
                            $username = \IPS\Member::loggedIn()->name;
                        }  else {
                            return null;
                        }
    2 часа назад, z8ToT8z сказал:

    Все работает, вот как было, я зарегистрировался на форуме, получил письмо - активировался на почте. Далее зашел на форум. Одновременно я зашел в игру - значит авторизация и регистрация работает на 100%

    С форума будет работать.

    Проблемы начнутся если администратор захочет чужому пользователю сменить пароль. И речь не о том, сохраняется он на форуме или нет, а в том, что в коде используется имя текущего пользователя. 

  11. 21 минуту назад, greykoo сказал:

    Я делал так как это делает IPS - то есть не стал добавлять пароли в базу. Взаимодействовать с БД нужно моментально ибо игроки не станут ждать пока аккаунт зарегается через какое-то там время , я уже об этом писал - это очень важно

    Не понимаю при чем здесь моментальность, аккаунт на форуме регистрируется моментально, либо не регистрируется совсем если он спамер. При том вы его еще регистрируете в удаленной базе данных перед регистрацией на форуме, которая еще может не произойти. Это тоже ошибка в логике. А речь о том, что у Вас лишается возмодность управлением паролем с форума. Только на удаленном сайте. IPS так делают потому, что они используют метод createOrUpdateAccount который также используется в авторизации с соцсетях а там пароля нету. Ну и тут либо также решили оставить, либо как обычно загавнакодили, как не редко у них это бывает. Но по хорошему пароль нужно сохранить, при том остается возможность управлением паролем с форума тоже. Я вижу здесь только одно препятствие, если пользователь сменит пароль на сайте. В этом случае, если форум с внутреннего метода авторизации не перейдет на внешней и выдаст сообщение об ошибке что пароль не верен, просто поднять внешней метод выше чтобы он отработал первым и после авторизации проверять пароль и в случае необходимости его обновлять. 

     

    20 минут назад, z8ToT8z сказал:

    Смена пароля на форуме через "настройки профиля" - работает

    Серьезно? Хм, интересно а как она работает если пароль пустой... Неужели IPS не требует старый пароль? Во всяком случае с АЦ могут быть проблемы по вышеописаному багу.

  12. ·

    Edited by soka

    У вас функция смены пароля будет использовать имя текущего пользователя, еще раз обратите внимание, если администратор попытается сменить этому пользователю пароль в АЦ и при этом запустится changePassword он поломает ему пароль в удаленной базе. Это потенциальный баг. А наличия паролей в двух базах никоем образом не мешает "прямому взаймодействию".  Если взамодействие жизнено важно нужно смотреть в другую сторону, а именно в memberSync.

  13. Удаленная база это такое, сегодня она есть завтра ее нету. Паролю лучше быть, имхо. Да и сможет ли пользователь сменить себе пароль на форуме если его нету? По моему нет. Только на удаленной базе. А если администратора в АЦ форума сменит пароль пользователя, тогда в username хеша будет имя текущего авторизированого пользователя.

  14. ·

    Edited by soka

    8 минут назад, z8ToT8z сказал:

    Ну проблема уже решена.

    greykoo, это лучше заменить 

                        if( !empty( $_POST['auth'] ) ) {
                            $username =  $_POST['auth'];
                        }else if( !empty( \IPS\Member::loggedIn()->name ) ) {
                            $username = \IPS\Member::loggedIn()->name;
                        }  else {
                            return null;
                        }

    Иначе, если администратор сменит пароль пользователю из АЦ в получим в качестве username имя администратора. Да и при регистрации под вопросом, хотя не смотрел.