parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Класс auth: логин/логаут на нескольких доменах | cookie ring

Азат Разетдинов 28.04.2007 12:54

Ситуация стандартная: при логине/логауте на одном домене необходимо повторить эту процедуру на всех остальных доменах проекта. Написал следующий метод для класса myauth, реализующий cookie ring. Параметром передаётся таблица доменов, на которые по цепочке происходит редирект. Как только возвращаемся на исходный домен, редирект прекращается. Будут ли какие-нибудь замечания?
###########################################################################
# shares cookies across domains
@shareCookies[tDomain][sQuery;sName;sValue]
^if(def $logon_data.[auth.logon] || def $logon_data.[auth.logout]){
	^if(^tDomain.locate[domain;$env:HTTP_HOST]){
		^tDomain.offset(1)
		^if(def $logon_data.[auth.domain]){
			^if($tDomain.domain eq $logon_data.[auth.domain]){
				$response:location[^untaint{http://${logon_data.[auth.domain]}$logon_data.[auth.uri]}]
			}{
				$response:location[^untaint{http://$tDomain.domain/?$request:query}]
			}
		}{
			$sQuery[^logon_data.foreach[sName;sValue]{$sName=$sValue}[&]]
			$response:location[^untaint{http://$tDomain.domain/?auth.domain=$env:HTTP_HOST&auth.uri=$request:uri&$sQuery}]
		}
	}
}


  • Класс auth: логин/логаут на нескольких доменах | cookie ring, Азат Разетдинов [M] 28.04.2007 12:54