MAKS-IT
Win_wiruzz, да просто подумайте, что сделает ваш скрипт если я хочу войти на сайт через юлогин, через вконтакте
зовут меня "Вася Пупкин", а email я ввожу такой, что он совпадает с мылом администратора сайта — что произойдет? — новый профиль не создастся?
Что бы плагин запросил у пользователя мыло оно должно отсутствовать в соцеалке. Контакт и одноклассники это допускают, но подобное бывает крайне редко, значит перед тем как создать профиль проверим есть ли мыло в базе, если есть то сообщаем пользователю что мыло уже используется и просим ввести другое мыло. Логично?
Win_wiruzz, а если я при заходе через вконтакте введу email администратора, то я получается авторизуюсь под администратором?
Куда вводить то будишь? стандартная авторизация не затронута, а емайл скрипт получает вроде так
$ulogin_token_url = 'http://ulogin.ru/token.php'; $ulogin_token_url .= '?token=' . $token . '&host=' . $_SERVER['HTTP_HOST']; // получение профиля
А когда в первый раз через социалку входишь то сначала в ней авторизуешься, потом скрипт берет данные и рагит или авторизует или я заблуждаюсь?
тут изменил
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; } }
Кто хочет по пробовать файл для обновления залил
А сайт ulogin.ru точно данные твиттера передает верно?
а у твиттер же https://twitter.com/ а в БД пишет просто http
да и склейка не происходит с существующим профилем
Допустим если есть email в базе авторизуем, без добавления данных
Просто авторизуем? — не вариант, так можно запросто зайти под чужим аккаунтом, достаточно будет указать такой же email. Тут тогда надо как yury предлагал — запрашивать пароль и склеивать.
Та же самая стандартная авторизация получается? может openid или у кого в базе ulogin_id сравнивать?
Что проверять, email, openid, или еще какие то данные в базу добавлять?
Допустим если есть email в базе авторизуем, без добавления данных, если нету создаем нового пользователя, но в случае входа с соц сети в которой указан другой email будет создан новый пользователь.
Предположим я рядовой пользователь, сначала я захожу с контакта, вижу свою страничку, радуюсь, в другой раз захожу с майла, а тут раз и у меня совершенно другой профиль, и я в шоке… а в результате на сайте будет много пользователей с одинаковыми лицами.
PS-- Прошу прощение за лирическое отступление…
-
— Дамп данных таблицы `cms_users`
--
INSERT INTO `cms_users` (`id`, `group_id`, `login`, `nickname`, `password`, `email`, `icq`, `regdate`, `logdate`, `birthdate`, `is_locked`, `is_deleted`, `is_logged_once`, `rating`, `points`, `last_ip`, `status`, `status_date`, `invited_by`, `invdate`, `openid`) VALUES
(24,1, 'chernenkomaksim', 'Черненко Максим', '77669ca45f8eaf8f2a55ce02582ca132', 'chernencko.maxyandex@yandex.ru', '', '2012-09-25 13:51:58', '2012-09-25 13:52:20', '1990-02-03', 0, 0, 0, 0, 0, '127.0.0.1', '', '0000-00-00 00:00:00', NULL, NULL, 'http://openid.yandex.ru/chernencko-max/'),
(23, 1, 'maksim23', 'Maksim', 'a3980dea743728dc2773772ae8943332', 'chernencko.max@yandex.ru', '', '2012-09-25 13:50:46', '2012-09-25 13:50:51', '1990-05-03', 0, 0, 0, 0, 0, '127.0.0.1', '', '0000-00-00 00:00:00', NULL, NULL, 'http://odnoklassniki.ru/248599342856'),
(22, 1, 'maksim22', 'Maksim', 'add59633290cdaadc2e2e700a5e33908', 'maksim.winvkontakte@mail.ru', '', '2012-09-25 13:50:30', '2012-09-25 13:50:37', '1990-05-03', 0, 0, 0, 0, 0, '127.0.0.1', '', '0000-00-00 00:00:00', NULL, NULL, 'http://vk.com/id57136681'),
(21, 1, 'maksim', 'Максим *******', 'e10adc3949ba59abbe56e057f20f883e', 'maksim.win@mail.ru', '', '2012-09-24 16:20:24', '2012-09-25 13:51:05', '1990-05-03', 0, 0, 1, 0, 0, '127.0.0.1', '', '0000-00-00 00:00:00', NULL, NULL, 'http://my.mail.ru/mail/maksim.win/'),
(20, 1, 'win', 'Win', '908647241da6d3f981448b96e5236efc', 'novyedruzya@gmail.com', '', '2012-09-24 02:54:34', '2012-09-25 13:51:42', '1990-05-03', 0, 0, 0, 0, 0, '127.0.0.1', '', '0000-00-00 00:00:00', NULL, NULL, 'https://plus.google.com/u/0/105322001881522693825/');
так оно и есть, после захода с разных соци сетей в которых указаны разные e-mailы создается новый пользователь с уникальным мылом но с одинаковым логином. Сегодня по мучаю ulogin потом выложу кусок базы, посмотрем что выйдет.Сейчас юлогин проверяет мыло на уникальность(переменная $already_email)
SJen, да, спрашивает, но вот только склейка не происходит с уже существующим профилем, т.к чтобы склеить надо запрашивать пароль от того акка, у которого мэил такой же. А сейчас происходит глюк если например вхожу через твиттер и указываю такой жемэил, как у профиля. В итоге выдает белый лист и сайт перестает показываться
в базу в cms_user загляни что там твориться?
Давайте его протестируем, найдем глюки если есть и исправим их!
Заливаем файлы, теперь еще файл registr.txt нужно добавить в /includes/letters.
Активируем, ели уже был установлен то обновляем.
100% работоспособность без тестирования гарантировать не могу, так что не забывайте сделать бекап перед установкой!