Проблемы с Uloginом
Не корректно работает
Что проверять, email, openid, или еще какие то данные в базу добавлять?
Допустим если есть email в базе авторизуем, без добавления данных, если нету создаем нового пользователя, но в случае входа с соц сети в которой указан другой email будет создан новый пользователь.
Предположим я рядовой пользователь, сначала я захожу с контакта, вижу свою страничку, радуюсь, в другой раз захожу с майла, а тут раз и у меня совершенно другой профиль, и я в шоке… а в результате на сайте будет много пользователей с одинаковыми лицами.
PS-- Прошу прощение за лирическое отступление…
Допустим если есть email в базе авторизуем, без добавления данных
Просто авторизуем? — не вариант, так можно запросто зайти под чужим аккаунтом, достаточно будет указать такой же email. Тут тогда надо как yury предлагал — запрашивать пароль и склеивать.
Допустим если есть email в базе авторизуем, без добавления данных
Просто авторизуем? — не вариант, так можно запросто зайти под чужим аккаунтом, достаточно будет указать такой же email. Тут тогда надо как yury предлагал — запрашивать пароль и склеивать.
Та же самая стандартная авторизация получается? может openid или у кого в базе ulogin_id сравнивать?
А сайт ulogin.ru точно данные твиттера передает верно?
а у твиттер же https://twitter.com/ а в БД пишет просто http
да и склейка не происходит с существующим профилем
да не надо ничего сравнивать. надо написать, что ваше мыло уже зарегано за таким то логином и запросить пароль от него для склейки. Если пароль подходит, то делаем склейку.Та же самая стандартная авторизация получается? может openid или у кого в базе ulogin_id сравнивать?
тут изменил
private function getUserByIdentity($identity,$email) { $inDB = cmsDatabase::getInstance(); $us = $inDB->get_field('cms_users', "openid='{$identity}'", 'id');// тут как было только значение передал переменной if ($us) {// если нашелся id возврящаем его и авторизуем return $us; } else {$us = $inDB->get_field('cms_users', "email='{$email}'", 'id');// если нет то проверяем есть ли такой e-mail в базе и сравниваем его с тем чтонам передал ulogin.ru, совпали авторизуем нет создаем нового пользователя return $us; } }
Кто хочет по пробовать файл для обновления залил
Win_wiruzz, а если я при заходе через вконтакте введу email администратора, то я получается авторизуюсь под администратором?
Куда вводить то будишь? стандартная авторизация не затронута, а емайл скрипт получает вроде так
$ulogin_token_url = 'http://ulogin.ru/token.php'; $ulogin_token_url .= '?token=' . $token . '&host=' . $_SERVER['HTTP_HOST']; // получение профиля
А когда в первый раз через социалку входишь то сначала в ней авторизуешься, потом скрипт берет данные и рагит или авторизует или я заблуждаюсь?
зовут меня "Вася Пупкин", а email я ввожу такой, что он совпадает с мылом администратора сайта — что произойдет? — новый профиль не создастся?
Win_wiruzz, да просто подумайте, что сделает ваш скрипт если я хочу войти на сайт через юлогин, через вконтакте
зовут меня "Вася Пупкин", а email я ввожу такой, что он совпадает с мылом администратора сайта — что произойдет? — новый профиль не создастся?
Что бы плагин запросил у пользователя мыло оно должно отсутствовать в соцеалке. Контакт и одноклассники это допускают, но подобное бывает крайне редко, значит перед тем как создать профиль проверим есть ли мыло в базе, если есть то сообщаем пользователю что мыло уже используется и просим ввести другое мыло. Логично?
и просим ввести другое мыло. Логично?
Нет, не логично. У юзера одно мыло, больше нет. Нечего ему больше вводить… Если мы ему предложим ввести другое мыло — он просто уйдет, не будет же он специально еще одно регистрировать — проще закрыть сайт и поискать другой, более лояльный к посетителям.
Поймите, все просто — я всего лишь хочу взломать ваш сайт через ulogin, а вы мне для этого даете все возможности. Мне надо лишь знать электронку админа, что узнать попроше, чем его пароль и я уже смогу авторизоваться на сайте с админскими правами.