логин: 
<< предыдущая заметкаследующая заметка >>
17 августа 2016
по вашим просьбам поправил Биноник и некоторые глюки движка

Имею сказать следующее: я КРАЙНЕ не рекомендую использовать для авторизации в движке Фейсбук. В крайнем случае пропишите в личной карточке родной логин-пароль на моем сайте. Почему? Дело в том, что Фейсбук — уникальное по мерзости и подлости учреждение, он постоянно придумывает всё новые и новые гадости, чтобы создать проблемы людям, которые осмелились что-то посещать на других сайтах.

Когда внешний сайт (например, мой) отправляет пользователя залогиниться через Фейсбук, сайт понятия не имеет, что это за человек, и никакие логины-пароли Фейсбука тоже на сайт не попадают по вполне понятным причинам безопасности. Авторизационная страница Фейсбука (и не только Фейсбука, так устроен любой трехсторонний авторизационный протокол) открывается в новом изолированном окне, там у пользователя происходит авторизационный секс со своим любимым Фейсбуком, а на сайт по итогу Фейсбук присылает некие идентификаторы — какие сам сочтет нужным. Обычно это линк на аккаунт, имя, фамилия, иногда email. Но email может быть не указан. А пользователей с именем Alex Smirnov я знаю семерых. Поэтому в качестве точного идентификатора сайту взять нечего, кроме линка на аккаунт. Мы полагаем, что уж линк-то на аккаунт ни одна соцсеть в своем уме менять не станет:

facebook.com/lleokaganov

Хрен там! Через год Фейсбук вдруг решает, что имена в линке — это лишнее и ненужное, а проще делать ссылку с номером аккаунта:

facebook.com/app_scoped_user_id/100001073866092

И начинает присылать после авторизации вот эти адовы номера. Что происходит на внешних сайтах? Мой сайт видит, что авторизовался некто невиданный прежде /app_scoped_user_id/100001073866092, и ему заводится новая учетная запись, которая не имеет никакого отношения к учетке /lleokaganov. Потому что догадаться, что там Фейсбук изменил, сайт не может никак. В результате всё, что было привязано к прошлой карточке (комменты, личная переписка, может даже подзамочный доступ) — всё теряется.

Но и это еще не всё!

Через год, когда все поматерились, перелогинились и привыкли к новой записи, Фейсбук решает, что он мало потрепал нервы, и надо гадить снова. И тогда он снова меняет строку представления, но не всю, а несколько цифр в серединке. В результате, скажем, товарищ Андрей, купив новый ноутбук, обнаруживает, что на его старом ноутбуке и на новом ноутбуке логины от Фейсбука становятся разные:

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

Проблема в моем движке в том, что движок уже создал вам новую учетку под измененное представление Фейсбука. И перенести изменившийся адрес Фейсбука в старую учетку невозможно без танцев с бубном, потому что две одинаковые учетки делать нельзя. Поэтому если же у вас случилось такое, что логин по Фейсбуку перестал вас узнавать на моем сайте, но вы человек мудрый, и когда-то вписывали родной логин-пароль для этого сайта (или хотя бы email, через который можно восстановить старую учетку), то алгоритм следующий:

1. Залогиниться Фейсбуком, чтобы попасть в ненужную новосозданную учетку. И там удалить из привязки соцсеть Фейсбук (красная иконка рядом со ссылкой. И больше пока не логиниться Фейсбуком!

2. Войти в свою старую учетку по логину-паролю и тоже удалить там сеть фейсбук. После чего нажать «добавить соцсеть» и добавить Фейсбук. После этого новое представление Фейсбука пропишется в старой учетке, и после логина вы будете попадать снова в нее. Пока Фейсбук опять что-нибудь не подгадит.

<< предыдущая заметка следующая заметка >>
пожаловаться на эту публикацию администрации портала
Страницы, которые привлекли мое внимание за последние дни, рекомендую:
2017-11-22 В июне 1982
архив ссылок

Комментарии к этой заметке на моем сервере отключены, надеюсь на понимание.
Но вы можете пойти и оставить комментарий в моем журнале ЖЖ.
Учтите, что лично я там комментарии не читаю, это дискуссионная зона для желающих обсудить.

Mac Firefox
 Австрия
22
0
Artёm
Вообще-то фейсбук присылает в ответ, помимо линка на аккаунт, нормальный человеческий user_id, который никогда не меняется.

...и сотни, тысячи приложений которые уже долгое время используют фейсбук для логина никаких проблем с этим user_id не имеют
Linux Safari Chrome
 Mount Laurel
1
0
[email protected] (dlazerka)
Подтверждаю, сам делал интеграцию с ФБ.

Хотя ФБ, конечно, кривее, чем тот же Google Sign In.
Linux Ubuntu Firefox
 Москва
0
0
Leonid Kaganov
Вон оно что... то-то я думаю, неужели у меня одного такие проблемы? Сейчас пойду изучать вопрос...

Кстати, а из user_id можно автоматически сформировать link на страничку Фейсбука? Мне бы хотелось хранить именно link, потому что помимо Фейсбука еще там сотня соцсетей, и у каждого линк в итоге.
Linux Ubuntu Firefox
 Москва
0
0
Leonid Kaganov
Проверил, присылает некое число "uid" - видимо это оно:

[identity] => https://www.facebook.com/app_scoped_user_id/100001073866092/
[network] => facebook
[verified_email] => 1
[last_name] => Каганов
[first_name] => Леонид
[photo_big] => http://graph.facebook.com/100001073866092/picture?type=large
[nickname] => Leonid
[photo] => http://graph.facebook.com/100001073866092/picture?type=squar[...]
[uid] => 100001073866092
[manual] => nickname
[profile] => https://www.facebook.com/app_scoped_user_id/100001073866092/
[sex] => 2
[email] => [email protected]
[real_identity] => https://www.facebook.com/app_scoped_user_id/100001073866092/
Linux Ubuntu Firefox
 Новосибирск
14
0
taskmgr
sex => 2
Это количество раз, сколько у тебя с движком фейсбука было
Windows Safari Chrome
 Москва
5
0
Dusty
Это Ллео и сам знает. Надо слать цифирь, сколько еще будет, если он не плюнет на это дело. :)
Windows Safari Chrome
 Санкт-Петербург
0
0
Eugene
Это ладно, а вот '[sex] => -2' было бы по-настоящему интересно.
Windows
 Москва
1
0
m (ngs-govno)
Да ллео что в лоб, что по лбу в этом вопросе... Он полгода назад мне не верил, что в фб не идиоты сидят, чтобы взять и в один момент сломать всё сотням тысяч сторонних сайтов. Все breaking changes в API таких сервисов с 9-значным количеством пользователей аннонсируются за полгода где-то, чтобы даже последние слоупоки поменять могли. Но скорее всего он вообще не туда смотрел.
Собственно, его открытие в комментарии выше это и подтверждает. А мне он так и не поверил, еще и обзывался...
Linux Safari Chrome
 Москва
0
0
Leonid Kaganov
Речь тогда шла про запрещение АПИ постинга с внешних сацтов. Оно до сих пор запрещено.
Windows
 Москва
0
0
m (ngs-govno)
Постинга чего? Постов в фб?
Linux Safari Chrome
 Москва
0
0
Неужели_меня_теперь_залогинит_нормально
Раньше, ещё очень давно, когда деревья были выше, трава зеленее, сиськи мясистее, а биноника ещё не было, а потом он появился, я вполне полагался на авторизацию просто куками, без паролей даже. Потом, после того, как мой основной винт полетел в космос, я стал использовать пароли чисто для сайта (но не из перечня моих стандартных паролей).
После последних перетурбаций я теперича здесь залогинен через пароль на сайте (ещё на стационарном компе с линуксом дома точно так же и на используемом на работе ноуте с виндой (нужна для работы с АСУ Siemens), но там я попробую стереть куки и восстановить старый логин; клятвенно обещаю не злоупотреблять двойным лимитом каментов, если получится :) ) с подтверждённым мылом Блекбери. А на Бинонике я сегодня таки восстановил свою старую учётку Zamkadoos.
Все лично мои глюки с соцсетями никак не связаны, так как акквунтов там я принципиально не завожу.
Windows Firefox
 Москва
1
0
Zamkadoos (Залогинило нормально!)
Во, я вернулсо у сюдой. Всё, больше не злоупотребляю.
Linux Ubuntu Firefox
 Москва
1
0
Leonid Kaganov
Фейсбуком лично мне было удобно логиниться потому что это быстро. Но логин-пароль собственной учетки лучше прописать и хранить.

Впрочем, на Бинонике, насколько я помню, наличие логина и пароля на сайте - обязательное условие создания своего журнала. Я прямо как знал, что проблемы с Фейсбуком будут... ;)
Opera
 Москва
0
0
Mike Novikoff
> на Бинонике, насколько я помню, наличие логина и пароля на сайте - обязательное условие создания своего журнала

К сожалению, нет. Обязателен только юзернейм (который будет субдоменом), а пароль не обязателен. И это очень зря. Может, ты уже не помнишь, но у меня в 2012 были там проблемы с доступом из-за того, что я прописал только OpenID, но не пароль. OpenID был от Рэмблера, который впоследствии перестал их поддерживать, и я остался в пролёте. Потом пришлось просить тебя прописать мне пароль вручную, сам я сделать этого уже не мог.

Так что стоило бы требовать от юзеров пароль в обязательном порядке, для их же спокойствия.

А юзерам советую не полагаться на OpenID, это вещь ненадёжная. Помимо Рэмблера, и Яндекс тоже их отменил. А на Гугле уже несколько раз менялся формат URL, что тоже ведёт к потере аккаунтов.
Mac Safari
 Израиль
2
0
braintunic
> вернулся с Фантассамблеи Васи Владимирского из Питера, вел мастер-классы, участвовал в круглых столах, общался с прекрасными людьми

А вот и фоточки с Фантассамблеи.
Новый прикид кандидата в депутаты Госдумы - "спустя рукава":


Windows Firefox
 Москва
0
0
vctor
На Фантассамблее морят кандидатов холодом?
Windows Firefox
 Германия
1
0
Глеб
В случае Ллео — не морят, а балуют.
Windows Safari Chrome
 Москва
0
0
vivliofika
хорошо смотришься
Mac Safari
 Израиль
5
0
braintunic
Смотря с кем сравнивать из гостей Фантассамблеи ;)


Mac Safari
 Литва
0
0
Michael Samoylov
Вообще-то правильно реализованная авторизация через Фейсбук всегда запрашивала мыло пользователя. Помимо этого доступен числовой ID.

https://developers.facebook.com/docs/php/howto/example_faceb[...]
Linux Safari Chrome
 Mount Laurel
0
0
[email protected] (dlazerka)
Это в API версии v2.2 так было. Сейчас v2.4, и email не всегда есть, т.к. ФБ стал поддерживать регистрацию без емейла, через телефонный номер (я так понимаю для развивающихся стран).

Раньше ещё можно было сказать что апп обязательно требует пермишна на емейл, сейчас это уже нельзя обязательно требовать, только опционально. Те приложения, что интегрировались до этого до сих пор могут требовать обязательно емейл (например, StackOverflow), а если делаешь новую интеграцию, то никак это не укажешь.
Windows Firefox
 Москва
0
0
vctor
Четыре года назад я залогинился в Бинонике через ЖЖ и написал аж 43 комментария.

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

Попытки перелогиниться приводят к тому же.
Конечно, Фейсбук бяка, но и с Биноником что-то не так.
Linux Safari Chrome
 Москва
0
0
Неужели_меня_теперь_залогинит_нормально
А сегодня пробовали?
Linux Ubuntu Firefox
 Москва
0
0
Leonid Kaganov
Вот тоже хотел этот вопрос задать...
Windows Firefox
 Москва
0
0
vctor
Пробовал, не получилось.
Mac Safari
 Израиль
6
0
braintunic
> Конечно, Фейсбук бяка, но и с Биноником что-то не так.

фейсбук конечно бука бяка
свой интерфейс менять мастак
но уж с биноником то всяко
не так
Linux Safari Chrome
 Москва
0
0
Неужели_меня_теперь_залогинит_нормально
В общем, как я и писал в личке, с виндой Биноник подружился, с ведроидом - наоборот, поссорился. По другим операционкам/браузерам отпишусь после 29-го.

И по ссылке binoniq.net/list выводится только количество аккаунтов - 376, а в самом списке их только 3.
Linux Ubuntu Firefox
 Москва
1
0
Leonid Kaganov
Андроид-браузер у меня на многопользовательском движке http://lleo.me/blog/ давно перестал логиниться. Попробую разобраться и с этим.

Про http://binoniq.net/list я с интересом узнал из вашего сообщения, полез разбираться - оказалось, оно выводит аккаунты, написавшие и ОПУБЛИКОВАВШИЕ посты за последние 30 дней... Исправил на последние 999999999 дней.

Вообще с Биноником конечно надо мне потихоньку писать учебник howto. Потому что может-то он сегодня просто офигенно много, ни одна блогоплатформа таких возможностей не дает. Но как там что делать, какие команды и в каком формате - этого не помню даже я, всякий раз лезу в свои же старые посты и вспоминаю команды...
Linux Safari Chrome
 Москва
0
0
Неужели_меня_теперь_залогинит_нормально
Поддерживаю всеми руками, ногами и щупальцами!!!
Теперь наконец-то буду вести свой бложег.
Linux Ubuntu Firefox
 Москва
0
0
Leonid Kaganov
Там вообще ни фига не документировано. Вот например, предлагаю вставить в заметку такой код:

{_GRAF:
1% По опросам респондентов в самых разных городах,
27% в среднем двадцать семь процентов лгут в анкетах от стыда.
30% Тридцать — лгут, поскольку надо.
20% Двадцать — просто мудаки.
* Остальное сам Левада заполняет от руки.
_}

Вот где он документирован? А ведь там можно еще и без процентов указывать, чтоб оно само подсчитало, и еще черт знает чего... И таких фич в движке просто вагон.
Linux Safari Chrome
 Москва
0
0
Неужели_меня_теперь_залогинит_нормально
Прошёлся по аккаунтам, написавшим более одного поста. Да, когда-то там была жизнь... Надеюсь, теперь она туда вернётся.
Linux Ubuntu Firefox
 Москва
0
0
Leonid Kaganov
Это все потому, что я сижу дома с температурой и болею.
Windows Firefox
 Челябинск
0
0
vinny-the-poo
Докондиционировался...
Linux Safari Chrome
 Amal St. Park Afek Rosh Haayim
0
0
braintunic
> Андроид-браузер у меня на многопользовательском движке http://lleo.me/blog/ давно перестал логиниться

Я сейчас спокойно там залогинился в Андроиде, в стоковом браузере на Galaxy 6 Edge, по username+пароль.

Или ты это уже исправил сегодня?
Linux Ubuntu Firefox
 Москва
0
0
Leonid Kaganov
По username+пароль всё и будет логинится - это ж моя епархия, чисто обращение к движку сайта без браузеро-зависимых вещей.

А вот говноагрегаторы типа Loginza и Ulogin не дают залониниться например через тот же фейсбук. Ulogin ничего не делает, Loginza пишет "empty session data"
Linux Safari Chrome
 Москва
0
0
Неужели_меня_теперь_залогинит_нормально
При попытке залогиниться через логин и пароль сайта что blog, что биноник выдают вот таакое:



Об этом я вчера и толковал.
Linux Firefox
 Middletown
0
0
Юрий Шимановский
Замеченный баг на бинонике - хтмл-тэг PRE не работает в тексте. Были другие, но я их не помню из за мелкости. А создать текст со своим форматированием у меня не получилось никак.
Opera
 Москва
0
0
Mike Novikoff
Afaik, там вообще не html, а что-то вроде BB-кодов. И не стандартных, а каких-то своих собственных. Впрочем, уже не помню точно... Нужна, нужна документация!

А тега PRE ещё частенько не хватает в комментах. Было бы полезно.
Mac Safari
 Израиль
2
0
braintunic
> Вообще с Биноником конечно надо мне потихоньку писать учебник howto

Объявляй краудфандинг - сбор средств на учебник по Бинонику!

А новый роман подождёт ;)
Windows Safari Chrome
 Москва
0
0
Михаил
Какой ещё новый роман? Леонид только что женился.
Mac Safari
 Израиль
4
0
braintunic
Так ведь жена не возражает против нового романа!
Windows Firefox
 Box SESTOCKHOLM
1
0
Меир Маркович Штангенциркуль
Леонид и Роман - жена не возражает. Но если Леонид и Вася, или Леонид и Петя, или не дай бог Леонид и Трофим - АХТУНК!!! Жена против!!!



(это жена говорит мужу если кто не понял)

Кстати Ольга с Ольгой - звучит привлекательно! :)
Windows Firefox
 Израиль
1
0
braintunic
> Начинать фразу с «If you will...» неправильно.

Такую несусветную чушь способен ничтоже сумняшеся заявить лишь тот, кто изучал английский язык по советским школьным учебникам.

Между прочим, самая знаменитая и везде цитируемая фраза Теодора Герцля (основателя Всемирной сионистской организации) по-английски начинается именно с «If you will».

Не говоря уж о миллионах других случаев использования этой весьма употребительной формы: "if you will".
Windows Firefox
11
0
Идиотъ
в фейсбуке увидавши глюки
кричал вебмастер пидарас
ему в ответ кривые руки
у вас
Linux Firefox
 Middletown
0
0
Юрий Шимановский
Есть баг в этом блоге с почтовыми с уведомлениями. (Про биноник не знаю, он вообще почту не шлет)
Так вот, заголовки получаемых сообщений выглядят примерно так:

=?utf-8?B?aHR0cDovL2xsZW8u

Причем не везде. Например текстовый mutt все показывает нормально. А графический thunderbird - отображает мусор. Почему так происходит? Слишком длинные заголовки. Чтобы заголовки отображались нормально, нужно делить исходный сабж на части байт по 30, а потом каждую часть отдельно кодировать и посылать так:


Subject: =?utf-8?B?........=?=
=?utf-8?B?........=?=
=?utf-8?B?........=?=
=?utf-8?B?........=?=


Важно, что строки-продолжения набираются со второй позиции. Причем каждая имеет обрамление. Я такую проблему тоже борол. Правда я использовал кодирование "Q" а не "B". Но, полагаю, разницы нет. Строка просто не влазит в буфер иного мейлера.

всего комментариев: 80

<< предыдущая заметка следующая заметка >>