Система на подобии Microsoft Passport на PHP (межсайтовая авторизация)

Статус
В этой теме нельзя размещать новые ответы.

KostyaCat

мы где-то рядом
Domain=domain
Optional. The Domain attribute specifies the domain for which the cookie is valid. An explicitly specified domain must always start with a dot.

RFC2109
 

tony2001

TeaM PHPClub
KostyaCat:
а если немного головой подумать?
где здесь написано, что можно для ЛЮБОГО домена поставить куку?
 

KostyaCat

мы где-то рядом
tony: в том то и дело, главный авторизирует участника и ставит куку зависимую к своему домену.

потом пользователь заглядывает на любой сервер, где подгружается javascript.
Основному севреру мы известны.
Он "выписывает" ява-скрипт, который на стороне клиента уже ставит куку, на той странице, и на том домене, куда подгрузился этот самый скрипт.
Дальше, посещаемый сервер, пользует куку с id сессии по своему усмотрению.

Надо провести полевые испытания =)
 

KostyaCat

мы где-то рядом
Да бы не списывалось на глюки и случайность привожу пример:

первый файл http://localhost1/test.php
PHP:
<?
if($_COOKIE['test']==""){
  echo "<SCRIPT LANGUAGE=JavaScript src=http://localhost2/setcookie.php></SCRIPT>";
}else{
  echo $_COOKIE['test'];
}
?>
второй файл http://localhost2/setcookie.php
PHP:
<?
echo 'document.cookie="test=123456;";';
echo 'alert("vstali");';
?>
Тестите на здоровье =)

P.S. имена хостов от балды взял. ___Тестилось НЕ на них____.
win2k - IE6
 

Scarab

Guest
Как вариант:

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

Скажем, как на www.asppassport.com.
 

tony2001

TeaM PHPClub
Scarab:
собственно, мысль с картинкой у меня была с самого начала.
непонятно только одно - что дальше?
из картинки не сделаешь Location на логин, в картинке форму для логина не выведешь.
 

KostyaCat

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

разве что только код =)
 

KostyaCat

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

Я бы скорее не стал пологаться на куки =)
 

Alien

Новичок
А как на Microsoft Passport сделано?
На уровне пользователя?

(ну не пользовался я никогда).
 

tony2001

TeaM PHPClub
>ява скрипт, элементарный и думаю держится всеми браузерами.
возможно.
но есть чисто субъективное восприятие джаваскрипта как чего-то ненадежного.

>Я бы скорее не стал пологаться на куки =)
есть альтернативы?
 

nagash

Guest
мне кажется выход только в разработке отдельного ActiveX приложения...
и потом уже от него отталкиваться на серваках...

для примера как сделана авторизация в webmoney при помощи кипера...
ты грузишь кипера а далее уже дело техники сервака...
так и здесь...
по другому мне кажется никак...
 

ForJest

- свежая кровь
Может это только я один такой тупой, но что дает решение, которое предложил KostyaCat? Я не вижу решения проблемы - идентификация пользователя теряется при уходе на другой сервер. Я не понимаю как главный сервер узнает какой скрипт "выписать" для другого сервера.

А также, если можно - дайте мне ссылку на 2 сайта, поддерживающих passport.net на который можно прологинившись на одном, зайти без логина на другой.
 

Alien

Новичок
Вот такое решение-набросок (просьба критиковать :) ).

Сайт1 -> жмем на "закрытую ссылку".
Если неизвестно авторизован или нет с Сайт1 -> Редирект на Паспорт.
Паспорт -> проверяет на авторизованность.
Паспорт -> редирект на Сайт1 с признаком да/нет.

Если нет->форма ввода логина/пароля (данные уходят на Паспорт).
Если да->соотв.контент.

То есть - Паспорт всегда знает, авторизован или нет.
СайтXX когда не знает, авторизован или нет - спрашивает двойным редиректом у Паспорта.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху