Forum Webscript.Ru
Программирование => PHP => Тема начата: Xenomorph от 20 Ноября 2002, 13:30:50
-
Кто нибудь может мне подсказать - как сделать чтобы сессия проходила одновременно на нескольких сайтах и не терялась? Поясняю - если вы зайдете на один из сайтов компании SW Software (ASP-linux.com , ASPstreet.com , HSPstreet.com) то там можно заметить что при прохождении аутентификации на ASPpassport.com прохождение логина распространяется на несколько сайтов. Я конечно понимаю, что при нормальном заходе можно хранить в кукисах, что пользователь такой-то зашел нормально, но это не выход. У кого-нибудь есть идеи по этому поводу ????
-
куки - как раз не выход.
бровзер не отдаст куку чужому домену
-
а как сделать чтоб другой домен видел сессию ? может как-нить можно создать для сессии что-то вроде списка trusted-доменов ??????
-
нет такого понятия в протоколе http - сессия!
есть или кука или параметр в урле
для куки ничего нельзя сделать.
параметр - ну в принципе можно добавлять для трастет доменов. Но оно тебенадо?
-
хммм .....
интересно было бы покопаться в исходном коде asppassport.com - как они это сделали ....
-
Xenomorph
Кто нибудь может мне подсказать - как сделать чтобы сессия проходила одновременно на нескольких сайтах и не терялась?
Использовать предусмотренные стандартно возможности.
См. в доках session_set_save_handler() , там всё доступно описано. Само сессии можно хранить в файлах или БД, это без разницы. Ясно, что доступ к ним должен быть.
-
ok - пусть будем сохранять сессию в БД с помощью session_set_save_handler() .... тогда следующий вопрос - пользователь переходит на другой сайт не по ссылке, а просто открыв новое окно .... как получить доступ к id этой сессии ??? сохранить id сессии в cookie с минимальным временем жизни ????
-
Xenomorph
как получить доступ к id этой сессии ??? сохранить id сессии в cookie с минимальным временем жизни ????
Да, конечно ты можешь установить необходимое время "жизни" и другие параметры куков, используемых с сессией, при помощи session_get_cookie_params
.............
Добавлю - не обязательно в БД, ты можешь использовать и files, принцип один и тот же.
Вся обсуждаемая петрушка практически и разрабатывалась с учётом твоего вопроса ;)
-
сохранить id сессии в cookie с минимальным временем жизни ????
а смысл? Куки поставленные скриптом с одного домена не могут быть получены скриптом другого домена (теоретически ;)) И тебе Ромик об этом в первом сообщении писал.
пользователь переходит на другой сайт не по ссылке, а просто открыв новое окно
на приведенных выше сайтах это учитывается и правильно работает? А там эта фича работает во всех броузерах? (сорри просто проверять лень :)).
-
Макс
А там эта фича работает во всех броузерах? (сорри просто проверять лень
Работает во всех, если куки работают (каламбур получился).
Ясное дело, что если я открыл первую страницу в IE, а потом вдруг решил пользоваться NC, то и куки будут другие и работать это не будет.
P.S. Тестировать это не нужно.
В отношении Куки поставленные скриптом с одного домена не могут быть получены скриптом другого домена
Здесь не теоретически возможные варианты рассматриваются, а конкретно возможность это реализовать. Об этом же речь и не шла.
Конечно реализация "втупую" не получится, на 100% согласен.
path поможет.
Хотя проще наверное и так - "невозможно и всё" :o
// в отношении конкретной реализации (что бы закрыть вопрос) - хороший и живой пример это сайт http://www.postnuke.com с его субдоменами.
-
path поможет.
для доменных имен, которые привел Xenomorph (ASP-linux.com , ASPstreet.com , HSPstreet.com) не поможет.
его субдоменами
речь ишла о доменах а не субдоменах.
Работает во всех, если куки работают (каламбур получился).
повторяю:
Куки поставленные скриптом с одного домена не могут быть получены скриптом другого домена
-
хех ....
тогда все-таки вопрос остался открытым - как передать идентификатор сессии другому домену ??????
-
через ссылку:
visit our site
-
о чем я и писал еще вчера :-)
можно и не сессию, а уник юзера.
В общем - банальные рефералы :-)))))
-
мндяяя .....
через ссылку передать - не проблема ..... это сделать несложно ...
но надо чтобы построянно сессия длилась - даже если открываешь новое окно по ctrl-n %)
-
А на луну тебе бровзером слетать не надо?
какие проблемы с ctrl-n? кука тебя спасет.
-
кука тебя спасет.
уже обсуждали это - по поводу отдачи браузером куки одного домена другому .....
-
RomikChef
сам же говорил : бровзер не отдаст куку чужому домену
тут самое главное как раз в том чтобы сессия держалась - а передать ее идент через урл - это не проблема .......
-
а у тебя по ctrl-n открывается другой домен?
Не поделишься секретом - как?
-
RomikChef
новый домен открывается разумеется не по ctrl-n .... блин ... я имел в виду что надо передать данные другому окну браузера .... ить ... поясняю ... обычно когда открываю через ctrl-n я сразу давлю esc, чтобы остановить загрузку страницы, а потом уже собственно и набираю новый урл .... новое окно можно открыть и просто еще раз запустив ослика ie ..... весь смысл в том, чтобы сессия не терялась ..... передать id сессии через url как реферал кто угодно сможет ....
-
короче.
тебе рассказали, как можно передать.
Если еще что-то неясно - возьми спецификацию протокола HTTP и прочти - что в нем можно, а что нельзя.
-
тут мне пришло письмо от автора asppassport ... цитирую ....
Как человек, писавший ASPpassport, говорю: способ очень похож на тот, что описал тов.
Макс, за исключением того, что сессии на этих сайтах не общие.
После логина на паспортный сервер сервер формирует спецпараметр, который хватается
паспортным модулем, декодится (в параметре находится user profile, заполненный
человеком при регистрации на паспортном сайте+кой-какие служебные данные - все это
закодено GNUPGой.), после чего до, чего надекодили, пишется в местную сессию, и кука
сохраняется на местном домене - на всякий случай, вдруг у вас сессия пропадет :)
При логауте соответственно дергаются в img src спецскрипты на тех сайтах, на которые
человек заходил - скрипты бьют куки.
==
Кстати, если открывать новое окно по Ctrl-N - сессия сохраняется. А вот если новый
совсем эксплорер открыть - то пиздец, да.
==
Не на форуме отвечаю - потому что бардак у вас там. :)
Вы еще бы прописку требовали, кроме регистрации. :)
-
Не на форуме отвечаю - потому что бардак у вас там.
Вы еще бы прописку требовали, кроме регистрации
[off] если посетителей никак не контроллировать, на форуме начнется бардак (материться начнут, спамить и т.д.) и регистрация вынужденный метод по их контролю. [/off]
GNUPG
это PGP что-ли?
При логауте соответственно дергаются в img src спецскрипты на тех сайтах,
то есть у тех кто работает с отключенной графикой могут быть глюки?
-
Gnupg - это альтернатива pgp ....
http://www.gnupg.org/
только она в отличии от pgp - бесплатная ....
а вот по поводу второго - не знаю .....
-
Xenomorph фантастика... :)
а ты уверен, что можно ходить с домена на домен без передачи идентификатора сессии в ссылке???
а такой вариант:
1) ползователь заходит на domain.ru, авторизуется... идентификатор сессии сохраняется в куках...
2) переходит на other_domain.ru по ссылке вида http://other_domain.ru/?sid=123e1rd1ef45y4h44hh55445hqwas
идентификатор сессии сохранятся в куках...
....
и т.д. и т.п.
теперь зайдя на любой из этих доменов пользователь будет авторизовываться...
-
ERge
гмм ....
мы это уже обсуждали ....
одно из требований - чтобы ссылка не была как реферал ....
-
Xenomorph ээээ.... панимаешь...
PS: я сначала вторую страницу как-то не обнаружил :-D
PPS: 2 Admin - тогда убери что можно и не зарегенным юзерам писать... а то я попался... думаю, дай напишу... а тут - ваш пароль!!! :)
снова 2Xenomorph:
врубился в ту мысль которую ты до нас довел :)
вместо img src можно исопльзовать script src или и то и другое вместе :)
можно еще что-нить придумать...
-
можно флэшину пиксельную вставить....
-
ERge
можно флэшину пиксельную вставить....
а имеет смысл ????
лучше уж script src ....
-
Xenomorph
а почему не имеет???
ты там в ActionScript че хочешь пиши... она тебе по всем твоим доменам пробежится... и т.п.
вариант номер 3, для извращенцев :)
использоваться сразу, так на всякий случай, сразу три варианта:
img src
script src
flash
будет надежнее :D
PS: правда увеличится кол-во обращений к серверу... эээ... ну это кому как ;)