У меня есть сайт w1, написанный в rails с использованием auhtlogic для аутентификации и w2 в PHP (скажем), я хочу, чтобы w2 получал доступ к информации о сеансе, хранящейся в w2, и вводил пользователя в w2, а также извлекал user_id из сеанса.Как получить доступ к сеансу одного сайта с другого сайта
ответ
По умолчанию Rack (который Rails использует для управления своими сеансами) хранит информацию о сеансе в файлах cookie путем сортировки хэша сеанса (см. here), в результате чего получается строка, специфичная для Ruby. Было бы чрезвычайно сложно использовать PHP для десериализации этой информации.
Если вы мертвы, сделав это, вам придется обрабатывать сериализацию сеанса самостоятельно. Я думаю, что полное решение выходит за рамки одного вопроса на SO, но несколько указателей:
Было бы целесообразно хранить только идентификатор сессии в куки, а затем сохранить фактические данные сессии в базу данных, которая будет доступна из приложений PHP и Rails. Если вы действительно хотите сохранить информацию о сеансе в файле cookie (или в другом месте, таком как memcached, где вам также придется сериализовать его), посмотрите стратегии сериализации, которые работают на разных языках, например MessagePack.
Вы хотите сделать что-то, чтобы убедиться, что файл cookie не подделан пользователем. В стойке используется HMAC, что является хорошим решением. Я никогда не использовал PHP, но я уверен, что у них также есть библиотека.
Возможно, вы уже знаете это, но на всякий случай: все это предполагает, что ваши два приложения используют одно и то же имя домена. Если это не так, то браузеры ваших пользователей не будут делиться файлом cookie между двумя приложениями, и на самом деле вы ничего не можете сделать. Например, вы можете делиться сеансами между railsapp.yourdomain.com и phpapp.yourdomain.com, но не railsapp.com и phpapp.com.
Удачи вам!
Я попытался решить какое-то решение, которое было чем-то вроде взлома, но для моего предложения это сработало.
после входа в систему, я использовал для записи cookie пользователя в файл в общедоступном каталоге, и когда этот пользователь пытался получить доступ к другому серверу, на котором ему приходилось обращаться, мое приложение на этом втором сервере просто должно было «знать» как получить доступ к удаленному файлу, хранящемуся на первом сервере, и загрузить этот контент в виде файла cookie. В то время я использовал CURL.
Примечание что ввести некоторые нарушения правил безопасности, и, возможно, ваша безопасность будет опираться на «неизвестности» - например, алгоритм для монтирования имя файла, в котором хранится печенье и как получить к нему доступ и внешней конфигурации веб-сервера .. Сказал, что, я думаю, мы могли бы подумать, а также использовать общий memcached для хранения файлов cookie.
Считаете ли вы использование Open ID?
да! но я не хочу предпочитать этот вариант –
- 1. Coldfusion: Доступ к данным с другого сайта
- 2. Как получить доступ к базе данных другого веб-сайта?
- 3. Как получить доступ к переменной sessionigniter с внешнего сайта
- 4. Доступ к htaccess другого веб-сайта
- 5. Предварительная инициализация сайта с другого сайта
- 6. Как получить доступ к сайту robots.txt сайта
- 7. Как получить доступ к базам данных сайта?
- 8. Доступ Ajax url с другого сайта
- 9. Получить json с другого сайта
- 10. Получить изображения с другого сайта
- 11. Как получить доступ к сеансу CakePHP из другого скрипта PHP?
- 12. JavaScript Получить данные с другого сайта
- 13. Как я могу получить доступ к сеансу vars веб-сайта из приложения C#?
- 14. Как я могу подключиться с одного веб-сайта к базе данных другого веб-сайта в php
- 15. Как получить переменную сеанса с другого сайта
- 16. Как получить количество посетителей с другого сайта
- 17. Как получить результаты с другого сайта
- 18. Как получить информацию с другого сайта
- 19. Как получить InnerText IFrame с другого сайта?
- 20. Как получить данные с другого веб-сайта
- 21. как получить данные с другого сайта?
- 22. Как получить/прочитать структуру другого веб-сайта
- 23. Доступ к сеансу другого веб-приложения
- 24. Как получить доступ к открытому сеансу терминала
- 25. Аутентификация с другого сайта
- 26. Как получить доступ к сеансу в __construct?
- 27. Как получить доступ к сеансу из DS.RESTAdapter?
- 28. Доступ к подпапке сайта Wordpress
- 29. Показать div с другого сайта
- 30. Доступ к папке веб-сайта с другого веб-сайта в том же IIS
Я думаю, вы хотите, чтобы w2 получил доступ к информации о сеансе, хранящейся в w1. – Shreyas
@shreyas да! Я хочу, чтобы w2 получал доступ к информации о сеансе, хранящейся в w1 –