Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Aplicación que contiene iframe con otra aplicación

Estas en el tema de Aplicación que contiene iframe con otra aplicación en el foro de Frameworks JS en Foros del Web. Hola, Tengo una aplicación escrita en php aloja da en un servidor "X". Tengo un aplicación en un servidor "Y", donde un fichero contiene un ...
  #1 (permalink)  
Antiguo 02/08/2011, 11:04
 
Fecha de Ingreso: marzo-2009
Ubicación: Lima
Mensajes: 73
Antigüedad: 15 años
Puntos: 1
Aplicación que contiene iframe con otra aplicación

Hola,

Tengo una aplicación escrita en php aloja da en un servidor "X".

Tengo un aplicación en un servidor "Y", donde un fichero contiene un iframe enlazado a la aplicacion en el servidor "X"

las dos aplicaciones tienen modulo login.

lo que necesito hacer es que si me logueo en la aplicación "Y", que tiene el fichero con el iframe, no tenga que loguearme en la aplicación dentro del iframe.

Como podría hacerlo T_T.

debe de haber muchas formas de hacerlo, me agradaría poder leer sus ideas de como solucionar este problema

las aplicaciones están escritas en php

Gracias!!!
  #2 (permalink)  
Antiguo 02/08/2011, 13:46
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: Aplicación que contiene iframe con otra aplicación

Pues la cosa no es tan sencilla como te imaginas amigo, ya que las sesiones son almacenadas en el servidor en el que se corre la aplicación así que la sesión de Y no es la misma que la de X.

Pero tal vez podrías hacerlo con una cookie y si el usuario se loguea en Y entonces creas la cookie y que X lea dicha cookie y si el dato almacenado es correcto pues que X cree la sesión para ese usuario a partir de la info de la cokkie.

No se..., es una idea, tendrías que colocarle mucha seguridad por lo de la cookie pero no veo otra forma de hacerlo o estoy muy cansado como para imaginarme otra.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #3 (permalink)  
Antiguo 02/08/2011, 16:15
 
Fecha de Ingreso: marzo-2009
Ubicación: Lima
Mensajes: 73
Antigüedad: 15 años
Puntos: 1
Información Respuesta: Aplicación que contiene iframe con otra aplicación

que lío,

No se me ocurre nada aun, de seguro es una opción, tu idea. Pero como comentaste tendría problemas con la seguridad :(

Seguiré buscando otra solución, agradezco mucho tu respuesta, si se te ocurre alguna otra idea me avisas por favor. tengo la impresión que esto me tomara mucho tiempo resolverlo.
  #4 (permalink)  
Antiguo 09/08/2011, 00:43
 
Fecha de Ingreso: marzo-2009
Ubicación: Lima
Mensajes: 73
Antigüedad: 15 años
Puntos: 1
Respuesta: Aplicación que contiene iframe con otra aplicación

Cita:
Iniciado por jotaincubus Ver Mensaje
Pues la cosa no es tan sencilla como te imaginas amigo, ya que las sesiones son almacenadas en el servidor en el que se corre la aplicación así que la sesión de Y no es la misma que la de X.

Pero tal vez podrías hacerlo con una cookie y si el usuario se loguea en Y entonces creas la cookie y que X lea dicha cookie y si el dato almacenado es correcto pues que X cree la sesión para ese usuario a partir de la info de la cokkie.

No se..., es una idea, tendrías que colocarle mucha seguridad por lo de la cookie pero no veo otra forma de hacerlo o estoy muy cansado como para imaginarme otra.
de veras nada sencillo no consigo dar con la solución :(.

mi intente de esta manera.


<?php

//Enviando valores de inicio de session a la aplicación aplicacionhijo.com desde miaplicacionpadre.com

session_start();
$post_vals = array(
'email' => $_SESSION['email'],
'securityData' => md5($_SESSION['email'].date('d/m/Y'))
);

foreach($post_vals as $key => $value) {
$request .= $key.'='.urlencode($value).'&';
}

$request = rtrim($request, '&');

$ch = curl_init('http://'.$_REQUEST['localhost'].':9000/pms/api/loginRemote.php');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST,true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
$response = curl_exec($ch);
curl_close ($ch);

echo $response;
?>

/************************************************/

/*****ESTE ES EL CÓDIGO DE INICIO DE SESSION DE LA APLICACIÓN HIJO

<?php
session_start();
require_once "../config/config.php";
require_once "../dmin/lib/php/usuario.class.php";

//data checkingdata checking
if(isset($_POST['email']) && isset($_POST['securityData'])){
$securityData = md5($_POST['email'].date('d/m/Y'));
//Safety Data checking
if ($_POST['securityData'] == $securityData){
$objectUsuario = new usuario();
$dataUser = $objectUsuario->checkEmail($_POST['email']);
//var_dump($dataUser);
if (!empty($dataUser)){
foreach($dataUser as $field){
$_SESSION['groupUser'] = $field['grupo_id'];
$_SESSION['user'] = $field['user'];
}

//query data recorder
if($_SESSION['groupUser'] == 1 || $_SESSION['groupUser'] == 2){
$redir = "home.php";
}elseif($_SESSION['groupUser'] == 3){
$redir = "camLive.php";
}
$_SESSION['autenticado'] = true;
$aut = "ok";
}else{

$_SESSION['autenticado'] = false;
$aut="error";
$message = "Error, compruebe nuevamente su usuario y contrasenia";
$redir = "index.php";
}
}else{
}
}else{
$message ="Ingresar datos";
}

echo '{ "redir": "' . $redir . '","aut": "' . $aut . '","message": "' . $message . '" }';

?>


//bueno mi idea fue que una vez iniciado session al cargar por el iframe el home de la aplicación hijo ya no me volvería a redireccionar al login :S


<!--HTML APLICACION PADRE-->

<iframe id="framevidium" width="100%" height="600" src="http://IPAPLICACIONHIJO/admin/home.php>

</iframe>

.................................................. .................................................. ..........

Gracias por el apoyo.
  #5 (permalink)  
Antiguo 09/08/2011, 16:01
 
Fecha de Ingreso: marzo-2009
Ubicación: Lima
Mensajes: 73
Antigüedad: 15 años
Puntos: 1
Respuesta: Aplicación que contiene iframe con otra aplicación

Hola, encontré la solución a mi problema. lo hice con jquery

<?php $jsonData = '{ "email": "' . $_SESSION['email'] . '","securityData": "' . md5($_SESSION['email'].date('d/m/Y')) . '" }';?>
<script type="text/javascript">
$(document).ready(function(){
$("select#localhost").bind('change', function () {
var myJSONObject = <?php echo $jsonData;?>;
$.ajax({
type: "GET",
dataType: "jsonp",
url: "http://"+this.value+":9000/",
async : false,
data: "email="+myJSONObject.email+"&securityData="+myJSO NObject.securityData,
success: function(msg){
alert(msg.message);
//$('div#divDestino').html(' ').append('<p>'+msg+'</p>');
//$("#divhome").hide();
//$("#divframe").show();
}
});
});
});
</script>

ese código hace que inicie la session y al terminar de hacer la petición cargo el iframe con url al home de la aplicación hijo XD!

( por favor muevan esta pregunta a la seccion de jquery, java script )

gracias.. un abrazo

Etiquetas: iframe, php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:46.