![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| maxipub |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: нет Всего: 1 |
Желательно, чтоб все работало быстро, незаметно для пользователя, и работало везде - по максимуму вне зависимости браузера или настроек.
Яндексил, гуглил весь вечер, у нас и "у них". Ничего подходящего... Как быть, какие есть идеи? Пытался подсмотреть как это сделано у того же Яндекса (авторизируешься на yandex.ru, заходишь на my.ya.ru - и ты там уже залогинен), но что-то так ничего и не понял. Судя по всему, проверка авторизации на my.ya.ru каким-то макаром проходит уже когда начинаешь туда ломиться. На одном из западных ресурсов, кстати, видел вариант типа
a.php:
Ну более ничего написано не было, но насколько я понял, на go-to-our-auth.com, соответственно, предполагается что пользователь предварительно авторизировался (типа главный сайт, куда ведут все авторизационные формы или просто ссылка "войти"). Если пользователь там уже залогинен, то идет попытка установить авторизационные куки для домена реферера, если нет - ставятся пустые (чтоб редирект не циклился). После чего переадресовываем пользователя обратно. На первый взгляд, вроде бы ничего... но все же несколько криво, как по мне. Лучше будет ставить куки для нужных доменов сразу, в момент авторизации на любом из доменов. Наиболее оптимальным вариантом мне казалась установка javascript-инклудов на нужные домены, там php генерит их и попутно расставляет нужные куки. Но как начал проверять, оказалось что такие вещи довольно охотно блокируются различными утилитами по повышению уровня безопасности. Можно пробовать через картинки, по аналогии. Но тут надо будет дополнительно отслеживать на javascript процесс загрузки этих картинок, чтоб иметь хоть какое то представление о успешности процесса. А если авторизация по каким-либо причинам не удалась, как в этом случае донести инфу до пользователя? Я уже смотрел даже в сторону кроссдоменного AJAX, но что-то мне идти по этому пути вообще не захотелось. У кого будут какие предложения? Как заавторизировать пользователя на нужных доменах при его логине на одном из них? |
||||
|
|||||
| Muerto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1207 Регистрация: 23.9.2006 Репутация: 3 Всего: 4 |
Вам Curl осваивать нужно, поищите "curl login" даст именно то что нужно ...
|
|||
|
||||
| gta4kv |
|
||||
![]() Walking around mad. ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1868 Регистрация: 25.7.2006 Репутация: 21 Всего: 91 |
Я бы посоветовал поснифать заголовки авторизации гугла (Live Http Header), там достаточно легко примерно понять реализацию, я над такой задачей думал, в своё время.
Самое простое - сделать домен авторизации, пусть будет: http://auth.ru/ Форма авторизации будет вести на:
В итоге auth.ru, если на нем установлена авторизация, будет нас возвращать пост запросом на my-super-service.ru/loginsuccess/ передавая, например уникальный id сесси или что нибудь типа того. Это давние мысли, вероятно где то ошибаюсь. Добавлено через 6 минут и 23 секунды
Авторизация происходит на одном домене, а не на каждом - в том и смысл. Это сообщение отредактировал(а) gta4kv - 7.9.2010, 00:02 |
||||
|
|||||
| maxipub |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: нет Всего: 1 |
Muerto, чем CURL поможет мне авторизации пользователя на сайте?
А если у нас есть еще my-super-service1.ru, my-super-service2.ru, my-super-service3.ru ... на каждый возвращать? Хотелось бы сразу юзеру куки на нужные домены вешать. |
|||
|
||||
| gta4kv |
|
|||
![]() Walking around mad. ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1868 Регистрация: 25.7.2006 Репутация: 21 Всего: 91 |
Куки повесить можно только на один домен, на котором всё это происходит. (http://auth.ru) Пример по-гуглу — я зашел в почту - мэйл.гугл.ком, я сразу буду залогинен на гугл.ком, ибо кука ставится на *.гугл.ком, но зайдя на ютюб мне сначала придется в любом случае пройти по ссылке, что бы он (гугол) проверил авторизацию на главном домене. Добавлено через 1 минуту и 24 секунды а если я на ютюбе нажму "выйти" до кука сотрётся именно с *.google.com Добавлено через 1 минуту и 49 секунд Добавлено через 2 минуты и 5 секунд (cмотри фулл линк) Это сообщение отредактировал(а) gta4kv - 7.9.2010, 00:10 |
|||
|
||||
| maxipub |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: нет Всего: 1 |
Да ну!?
Но мне хотелось бы по возможности что-то более красивое и предсказуемое. Ну и чтоб этот процесс был контролируем - с обратной связью. А если у кого, вдруг, опыт есть на реальных разработках - вообще отлично. |
||||
|
|||||
| gta4kv |
|
|||
![]() Walking around mad. ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1868 Регистрация: 25.7.2006 Репутация: 21 Всего: 91 |
Вариант с картинками ущербный.
|
|||
|
||||
| maxipub |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: нет Всего: 1 |
||||
|
||||
| gta4kv |
|
|||
![]() Walking around mad. ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1868 Регистрация: 25.7.2006 Репутация: 21 Всего: 91 |
При убитых картинках с такой системой мы получим ровно ничего. Я привожу вам реальные примеры с гугла, потому, что там уж точно все продумано и соответственно это лучший образец в какую сторону копать. Почти у любой другой реализации всегда есть большие подводные камни. Это сообщение отредактировал(а) gta4kv - 7.9.2010, 00:52 |
|||
|
||||
| Muerto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1207 Регистрация: 23.9.2006 Репутация: 3 Всего: 4 |
maxipub, Ну я конечно когда вам про curl написал имел совсем другое, но все же, не вижу причины по которой с помощи курл нельзя было взять куку с сервера, и с помощи этой куки сделать логин и вывести страницу...
Возможно я что то упускаю, но вроде у курл и файл куки можно указать который берется с сервера,и точный ход входа к примеру сейчас сделаем get это эээто и это, а затем post post , и попадем куда надо,и там что то парсим, или просто выводим страницу... Зависит что именно нужно... Конечно если просто перекинуть по session id нужно, то наф здесь curl не понятно, но и как сделать увы хз( нужно в гугль идти) Это сообщение отредактировал(а) Muerto - 7.9.2010, 01:54 |
|||
|
||||
| maxipub |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: нет Всего: 1 |
Простите, а при чем тут это? Почему они вообще должны быть убитыми? С такими рассуждениями, при "убитых ссылках и на гугле..." будет тот же эффект, в чем разница? И вообще, вы же только говорили, что
а тут уже "картинки" не нравятся. Да и вообще, если гугл проводит авторизащию с переадресацией (я не смотрел, но что-то мне подсказывает что там идет авторизация по SSL, так что вполне реально что лучше и переадресовать для избежания лишних конфузов), то это же не значит что всем так надо делать? А если у меня 30 доменов, это будет 30 переадресаций? Или 60? Благодарю за помощь, но мне хочется именно так: авторизация на неком auth.ru => одновременная авторизация и на остальных доменах. Вот варианты, как это лучше сделать, я и хотел бы рассмотреть. ЗЫ: если вам не сложно, могли бы копнуть яндекс, как там все устроено? Мне он в данном плане интересней, т.к. как минимум нет этих переадресаций. А то я сейчас на казенном компе, ни заголовки, ни куки толком не глянуть. Добавлено через 5 минут и 23 секунды
Конечно можно, но что нам это дает? Как именно отследить, какому из юзеров какая кука (да и вообще зачем она нам нужна если мы сами ее и формируем? Вот смотрите, на странице a1.ru выдается ссылка на некую страницу a2.ru/oops.php, авторизированный на a1.ru пользователь кликает на нее, и... как на oops.php определить теперь что это за пользователь и какой его юзеради? |
||||||
|
|||||||
| Muerto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1207 Регистрация: 23.9.2006 Репутация: 3 Всего: 4 |
А вы проект для гостей планируйте, в нем пользователей не будет? Берем id сессии, и берем соответствующие файлы куки, и подставляем их и делаем логин где хотим Если же один куки на всех, то вообще и проблем нету |
|||
|
||||
| cutwater |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 592 Регистрация: 24.6.2008 Репутация: 1 Всего: 10 |
Вставлю свои 5 копеек =)
Есть еще такая замечательная технология - OpenID, я думаю будет полезно разобраться с ее механизмом. Хотя прозрачно для пользователя сделать вряд ли получится. |
|||
|
||||
| maxipub |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: нет Всего: 1 |
Muerto, это все замечательно. У нас есть сайты s1.ru, s2.ru, s3.ru... человек логиниться на s1.ru, как нам при этом установить ему куки на s2.ru, s3.ru... вот в чем главный вопрос.
cutwater, забыл сразу упомянуть, openid и иже с ними не устраивают. Ищется именно решение для установки кук под список доменов. |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |