это перепост заметки, оригинал находится на моем сайте: http://lleo.me/dnevnik/2016/08/17.htmlИмею сказать следующее: я КРАЙНЕ не рекомендую использовать для авторизации в движке Фейсбук. В крайнем случае пропишите в личной карточке родной логин-пароль на моем сайте. Почему? Дело в том, что Фейсбук — уникальное по мерзости и подлости учреждение, он постоянно придумывает всё новые и новые гадости, чтобы создать проблемы людям, которые осмелились что-то посещать на других сайтах.
Когда внешний сайт (например, мой) отправляет пользователя залогиниться через Фейсбук, сайт понятия не имеет, что это за человек, и никакие логины-пароли Фейсбука тоже на сайт не попадают по вполне понятным причинам безопасности. Авторизационная страница Фейсбука (и не только Фейсбука, так устроен любой трехсторонний авторизационный протокол) открывается в новом изолированном окне, там у пользователя происходит авторизационный секс со своим любимым Фейсбуком, а на сайт по итогу Фейсбук присылает некие идентификаторы — какие сам сочтет нужным. Обычно это линк на аккаунт, имя, фамилия, иногда email. Но email может быть не указан. А пользователей с именем Alex Smirnov я знаю семерых. Поэтому в качестве точного идентификатора сайту взять нечего, кроме линка на аккаунт. Мы полагаем, что уж линк-то на аккаунт ни одна соцсеть в своем уме менять не станет:
facebook.com/lleokaganov
Хрен там! Через год Фейсбук вдруг решает, что имена в линке — это лишнее и ненужное, а проще делать ссылку с номером аккаунта:
facebook.com/app_scoped_user_id/100001073866092
И начинает присылать после авторизации вот эти адовы номера. Что происходит на внешних сайтах? Мой сайт видит, что авторизовался некто невиданный прежде /app_scoped_user_id/100001073866092, и ему заводится новая учетная запись, которая не имеет никакого отношения к учетке /lleokaganov. Потому что догадаться, что там Фейсбук изменил, сайт не может никак. В результате всё, что было привязано к прошлой карточке (комменты, личная переписка, может даже подзамочный доступ) — всё теряется.
Но и это еще не всё!
Через год, когда все поматерились, перелогинились и привыкли к новой записи, Фейсбук решает, что он мало потрепал нервы, и надо гадить снова. И тогда он снова меняет строку представления, но не всю, а несколько цифр в серединке. В результате, скажем, товарищ Андрей, купив новый ноутбук, обнаруживает, что на его старом ноутбуке и на новом ноутбуке логины от Фейсбука становятся разные:
И это пиздец, который не лечится вообще никак, потому что Фейсбук гадит специально.
Проблема в моем движке в том, что движок уже создал вам новую учетку под измененное представление Фейсбука. И перенести изменившийся адрес Фейсбука в старую учетку невозможно без танцев с бубном, потому что две одинаковые учетки делать нельзя. Поэтому если же у вас случилось такое, что логин по Фейсбуку перестал вас узнавать на моем сайте, но вы человек мудрый, и когда-то вписывали родной логин-пароль для этого сайта (или хотя бы email, через который можно восстановить старую учетку), то алгоритм следующий:
1. Залогиниться Фейсбуком, чтобы попасть в ненужную новосозданную учетку. И там удалить из привязки соцсеть Фейсбук (красная иконка рядом со ссылкой. И больше пока не логиниться Фейсбуком!
2. Войти в свою старую учетку по логину-паролю и тоже удалить там сеть фейсбук. После чего Нажать «добавить соцсеть» и добавить Фейсбук. После этого новое представление Фейсбука пропишется в старой учетке, и после логина вы будете попадать снова в нее. Пока Фейсбук опять что-нибудь не подгадит.
это перепост заметки, оригинал находится на моем сайте: http://lleo.me/dnevnik/2016/08/17.html
Наш священный зверь разговаривает - пойман фотографом в момент общения с паствой