Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

kansas_rc

Enviar dados entre servidores diferentes

Recommended Posts

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.