Комментарии 45
Огромное спасибо. Давно мечтаю перевести свой блог на систему авторизации через twitter/facebook/vk/google
Мне бы этих четырех было вполне достаточно (или даже трех). Так что топик в избранное и жду новых ркуоводств.
Мне бы этих четырех было вполне достаточно (или даже трех). Так что топик в избранное и жду новых ркуоводств.
Loginza.ru подойдет и избавит от необходимости вручную настраивать для каждого провайдера
не-не, это дополнительные несколько действий которые полностью отсекаются в случае применения решения из топика. Пробовал — знаю.
Лучше день потерять, потом за пять минут долететь. ©
Лучше день потерять, потом за пять минут долететь. ©
А что именно вас там не устроило? Просто интересно.
У меня блог на wordpress, и при попытке авторизоваться через сторонний аккаунт — пользователь всё-равно переходит в форму регистрации WP, со всеми соответствующими движениями.
Я же хочу, что бы было как на lifehacker.ru, который тоже работает на wordpress.
Я же хочу, что бы было как на lifehacker.ru, который тоже работает на wordpress.
поставьте disqus
Та же беда что и с Логинза.
Зачем использовать кучу разных плагинов (да пусть даже один) если есть красивое, и, на мой взгляд, правильное решение.
Зачем использовать кучу разных плагинов (да пусть даже один) если есть красивое, и, на мой взгляд, правильное решение.
Спасибо большое, очень полезная статья. Жду продолжения.
Если у юзера много аккаунтов, как бороться с ботами?
Я, почемк-то, не доверяю всем этим яваскриптовым виджетам…
Написал себе php-библиотечку для авторизации и использования API вконтакте и фейсбука и радуюсь.
Правда, перепиливал ее несколько раз из-за изменений в api, сейчас переписать бы ее, а то уже немного стыднона костыльный код смотреть, но тем не менее, вполне работает.
Единственный нюанс, который стоит отметить для всех, кто такое делает:
Что у вконтакта, что у ФБ — не всегда всё приходит.
Не знаю, с чем это связано, но от вконтакта иногда приходят фрагменты данных, а у ФБ не всегда отдаются аватарки через социальный граф. Так что это нужно обязательно проверять.
Написал себе php-библиотечку для авторизации и использования API вконтакте и фейсбука и радуюсь.
Правда, перепиливал ее несколько раз из-за изменений в api, сейчас переписать бы ее, а то уже немного стыднона костыльный код смотреть, но тем не менее, вполне работает.
Единственный нюанс, который стоит отметить для всех, кто такое делает:
Что у вконтакта, что у ФБ — не всегда всё приходит.
Не знаю, с чем это связано, но от вконтакта иногда приходят фрагменты данных, а у ФБ не всегда отдаются аватарки через социальный граф. Так что это нужно обязательно проверять.
Интересно, много ли еще новых сайтов на PHP содержат такой код, как этот:
$result = mysql_query("SELECT id, random, password FROM tracker_users WHERE username = 'vk-$uid'");
А в чем собственно проблема?
В 2011 году программисты используют PDO, Active Record, mysqli на худой конец.
Да и расширение mysql уже не поддерживается
А с какого года программисты (не)используют code conventions?
Автор дорабатывал уже готовый и работающий код, насклько я понял.
Автор дорабатывал уже готовый и работающий код, насклько я понял.
Да защищать меня не надо, как все наверное обратили внимание в статье нет ни намека на ооп и обертки обращений к базе данных. Блог называется «веб-разработка для начинающих», я и в следующей статье буду использовать подобный стиль, если кто-то захочет внедрить пример из статьи в свой код — пожалуйста, используйте всю мощь современных технологий, но для начинающих программистов обычные mysql_query — просто и привычно.
но для начинающих программистов обычные mysql_query — просто и привычно.
Беда в том, что найдя пример кода, они тащат эти примеры в продакшен с мнимальными изменениями.
Очень и очень вредно давать начинающим примеры с mysql_query и переменными в запросе, без prepared statements
code conventions для PHP — фильтровать переменные и пользоваться mysqli. Об отказе от старого модуля mysql официально заявили разработчики
А может стоит дать пользователю возможность самому после первой авторизации через сторонний сервис ввести логин и пароль? Так по моему будет правильней.
Тогда это будет уже не авторизация через сторонний сервис, а «получение имени, аватарки и других данных и добавление их в базу с последующим игнорированием социальной сети, откуда пришел пользователь». А здесь задача была именно использовать соц.сети с обновлением данных при каждой авторизации в случае если пользователь сменил ник, аватарку или что-то другое.
А зачем пользователю вообще логин и пароль, если он всегда будет авторизовываться через соц.сеть?
Главное — выдать ему ID в базе при первом логине и сессионную куку каждый раз выдавать.
Если принципиально знать, что он через вконтакт заходит — эту информацию не обязательно в логин пользователя упаковывать, можно хранить где-то отдельно.
Главное — выдать ему ID в базе при первом логине и сессионную куку каждый раз выдавать.
Если принципиально знать, что он через вконтакт заходит — эту информацию не обязательно в логин пользователя упаковывать, можно хранить где-то отдельно.
Поясню почему я придерживаюсь другой точки зрения: у меня пользователи могут оставлять комментарии, голосовать, писать в чат, загружать торренты и мне (как и всем другим, у которых действия пользователей сохраняются) необходимо например при добавлении комментария вставлять запись в которой обязательно должен быть какой-нибудь неизменный айдишник.
Возможность можно, но не обязательную. Вообще сейчас, имхо, нужно давать пользователям возможность и регистрироваться, и логиниться различными способами на выбор, рассматривая внутренние способы регистрации и аутентификации равноправно с внешними, то есть как ещё один сервис, который чисто случайно оказался на вашем же сайте, и поэтому вам нужно не только с интерфейсом работать, но и реализацию сделать.
Ну, так я о том же по сути говорю. Просто я считаю, что пользователь должен все же сам ввести логин и пароль после первого входа на сайт через сторонний сервис, а если у него уже есть акаунт на вашем сайте, то дать ему возможность привязать этот ак. из стороннего сервиса к акаунту на сайте.
Ясно что это не дополнительное действие при первой авторизации, но что поделаешь, ведь разные социалки возвращают разные наборы данных, а завтра могут их поменять и у вас тогда возникнет еще больше проблем.
P.S. Хотя если у вас задача дать пользователю оставить коммент на сайте, то можно вполне обойтись и простым методом как у вас.
Ясно что это не дополнительное действие при первой авторизации, но что поделаешь, ведь разные социалки возвращают разные наборы данных, а завтра могут их поменять и у вас тогда возникнет еще больше проблем.
P.S. Хотя если у вас задача дать пользователю оставить коммент на сайте, то можно вполне обойтись и простым методом как у вас.
К счастью, вконтакт начал поддерживать нормальный протокол OAuth — на мой взгляд лучше использовать его, чем их «велосипед».
Так же будет проще потом подключать другие сервисы.
Так же будет проще потом подключать другие сервисы.
Хотелось бы еще OpenID в деле увидеть… Запарился на нем :)
очень хорошая статья, спасибо.
Хорошо, что у меня есть Omniauth…
(-:
(-:
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Авторизация через ВКонтакте, Mail.ru и другие для самых начинающих — 1