kansas_rc 0 Denunciar post Postado Agosto 19, 2013 Boa tarde pessoal, Desde já agradeço pela atenção de vocês, é o seguinte, tenho 2 sistemas php em servidores diferentes (sistema A - sistema B) e preciso enviar o id do usuario + sessão do sistema A para o sistema B. Para que se "existir" essas informações o usuario não precise fazer login no sistema B. Já tentei usar o curl (http://blog.komeia.com/2011/08/23/enviar-post-para-outro-servidor-com-curl-php/) tentei passar por $.get e não tive sucesso, Se vocês tiverem alguma idea de como fazer isso agradeço. Compartilhar este post Link para o post Compartilhar em outros sites
redstyle 7 Denunciar post Postado Agosto 19, 2013 Tudo vai depender de qual momento você vai enviar o usuário para o sistema A ou para o sistema B. Por exemplo: Você poderia gerenciar a session via banco de dados e quando o usuário fosse de um sistema para outro você passava um hash via GET e do outro lado você identificaria esse GET fazendo a re-autenticação. Você poderia fazer isso mesmo sem usar session via banco de dados. Mas sempre pensando em passar um hash para essa re-autenticação. Lembrando que esse hash seria mudado ou em cada requisição ou de tempos em tempos. Compartilhar este post Link para o post Compartilhar em outros sites
kansas_rc 0 Denunciar post Postado Agosto 20, 2013 Obrigado pela dica redsyle, vou tentar implementar aqui, volto com a resposta ou mais dúvidas rsrsrsr Compartilhar este post Link para o post Compartilhar em outros sites
Vinicius Rangel 208 Denunciar post Postado Agosto 20, 2013 webservice Compartilhar este post Link para o post Compartilhar em outros sites
kansas_rc 0 Denunciar post Postado Agosto 21, 2013 Bom dia pessoal, Obrigado pela sugestão Vinicius. tentei fazer isso usando content (seguindo um exemplo php.net/manual/pt_BR/function.file-get-contents.php) $url = 'http://www.usuario_b.php'; $username = '12345678900'; $content = http_build_query(array('username' => preg_replace("/[^0-9]/","",$username))); $contextAuthOptions = array( 'http'=>array( 'method' => 'POST', 'header' => "Accept: application/json; charset=UTF-8\r\n" . "host: localhost\r\n", 'content' => $content ) ); $authContext = stream_context_create($contextAuthOptions); $authResult = file_get_contents($url, NULL, $authContext); $authInfo = json_decode($authResult); Depois tentei usar JavaScript, mais esse também não rolo :upset: redstyle, sem querer abusar, já que vc falou de um hast enviado via get, tem algum exemplo de como fazer isso? Obrigado pela atenção de vocês Obs: desculpem por não colocar a url verdadeira é que fui autorizado, obrigado pela compreensão. Compartilhar este post Link para o post Compartilhar em outros sites
kansas_rc 0 Denunciar post Postado Agosto 28, 2013 Boa tarde pessoal, disculpe pela demora, consegui enviar os dados que preciso via get criptografados. Um amigo me deu essa sugestão, e vou postar aqui para quem precisar. vamos lá: 1: No arquivo que envia os dados para outro servidor: $get = base64_encode( json_encode( array( "id" => $_SESSION['id'] , "cpf" => $_SESSION['cpf'] ) ) );) $url = 'http://url_externa?' . $get; $contextAuthOptions = array( 'http'=>array( 'method' => 'GET', 'header' => "Accept: application/json; charset=UTF-8\r\n" . "host: localhost\r\n" ) ); 2º agora no arquivo que vai receber os dados: function is_base64_encoded( $data ) { if ( preg_match( '%^[a-zA-Z0-9/+]*={0,2}$%' , $data ) ) { return TRUE; } else { return FALSE; } // end iF; } // end function is_base64_encoded; if ( $_SERVER[ "QUERY_STRING" ] && is_base64_encoded( $_SERVER[ "QUERY_STRING" ] ) ) { $dataQueryString = json_decode( base64_decode( $_SERVER[ "QUERY_STRING" ] ) ); $_SESSION['usuario']['id'] = $dataQueryString->id; $_SESSION['usuario']['cpf'] = $dataQueryString->cpf; } // end iF; Esso ai pessoa, agora é só dar um print_r na $_SESSION['usuario'] para olhar os dados recebidos. Mais uma vez desde já agradeço pela atenção: Compartilhar este post Link para o post Compartilhar em outros sites