Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Авторизация с одного домена на другом 
:(
    Опции темы
starmaster
Дата 2.1.2007, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 29.3.2004

Репутация: нет
Всего: нет



Здравствуйте,

Есть такой вопрос: как лучше всего реализовать авторизацию с одного домена на другой и чтобы после авторизации меня перекидывало на этот другой домен авторизированным. К примеру, на первом домене (одного сервера) расположен форум, а на другом домене (того же сервера) расположен чат, так вот, надо чтобы при авторизации на форуме, человек автоматически авторизировался в чате. То есть и чат и форум используют одни данные для авторизации, но чтобы пользователю не надо было два раза вводить одну и ту же информацию, хорошо бы было сделать, чтобы при нажатии на кнопку "чат" на форуме, пользователь автоматически попадал в чат. Авторизировать его легко с помощью cURL или сокетов, но как сделать чтобы он попадал на страничку чата авторизованным? Как это лучше реализовать?
PM MAIL WWW ICQ   Вверх
Mal Hack
Дата 2.1.2007, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Есть только один способ. Вызвать (отправить ему запрос) удаленно скрипт с другого хоста, передать ему POST данные с авторизации первого, второй скрипт авторизует пользователя у себя и ставит ему свои куки. Только так.
PM ICQ   Вверх
Eugene_Bond
Дата 3.1.2007, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 3.9.2006

Репутация: 1
Всего: 4



1. Глобальный
http://xpoint.ru/know-how/VebAlgoritmyi/Me...yaAvtorizatsiya
По мотивам этих размышлений можно попробовать создать свою реализацию

2. Более простой, но ограниченный
Если все работает в пределах одного сервера (точнее даже не веб-сервера, а имеет доступ к одному серверу БД) -- достаточно хранить сессии в базе и передать ид сессии в урле при переходе с форума в чат.
PM MAIL   Вверх
Mal Hack
Дата 3.1.2007, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Eugene_Bond @  3.1.2007,  11:10 Найти цитируемый пост)
2. Более простой, но ограниченный

А куки? Не забывай, что куки надо установить с ДРУГОГО домена.
PM ICQ   Вверх
Eugene_Bond
Дата 5.1.2007, 09:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 3.9.2006

Репутация: 1
Всего: 4



Цитата(Mal Hack @  3.1.2007,  15:08 Найти цитируемый пост)
А куки?


Цитата(Eugene_Bond @  3.1.2007,  11:10 Найти цитируемый пост)
и передать ид сессии в урле при переходе с форума в чат

А сессионная кука уже у каждого домена уже своя.
PM MAIL   Вверх
Mal Hack
Дата 5.1.2007, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Я боюсь, что по этому ID скрипт не сможет открыть сессю с форума, если, конечно, механизм сессий полностью не реализован через БД...
PM ICQ   Вверх
Eugene_Bond
Дата 8.1.2007, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 3.9.2006

Репутация: 1
Всего: 4



Mal Hack, 
Сможет открыть при любой организации общего хранилища сессий.
Например:
 1. В общей БД (при хранении в БД)
 2. В общей директории (при стандартном хранении в файлах)

У каждого метода свои недостатки и сложности.
В первом -- необходимость блокировки при обновлении данных. Поскольку, чаще всего для веб-разработок с использованием PHP, говорим БД -- подразумеваем MySQL, сталкиваемся с невозможностью блокировать отдельно взятую запись в базе. Только  таблицу целиком. При большой нагрузке это будет сказываться на производительности. Тот же PostgreSQL, к примеру, позволяет блокировать только запись (впрочем, и отдельное поле). А чат, это как раз тот случай, когда будет частое сохранение сессионных данных.

Во втором -- если речь идет об обычном Shared хостинге, у хоста форума просто может не быть прав на доступ к директориям хоста чата (и наоборот). Это в случае, если tmp для хоста лежит в его хоум директории. И не факт что хватит прав даже в случае хранения сессионных файлов в общей tmp директории сервера.
В любом случае это вопрос конфигурации сервера. Если сервер свой -- проблем возникнуть не должно.

В свое время, когда один из проектов был сбаллансирован на несколько серверов, сессии лежали в общей примонтированной директории и все это прекрасно работало.

Правда потом, в силу ряда причин, сессии все равно переехали в БД
PM MAIL   Вверх
Mal Hack
Дата 8.1.2007, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Eugene_Bond @  8.1.2007,  12:34 Найти цитируемый пост)
Сможет открыть при любой организации общего хранилища сессий.

Если не делать соответствующих проверок.

Я имел ввиду, если переданный SID потом всталять в session_start
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0583 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.