Ir para conteúdo

Arquivado

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

bernado_pampa

Login em 2 ou mais sistemas

Recommended Posts

Olá, tenho o seguinte cenário:

Dois sistemas rodando em PHP+MySQL, em servidores diferentes, logo, em bancos diferentes, os dois tem a mesma senha, no script que cria e edita os usuários, já estão as duas conexões dos bancos. Vamos assumir os exemplos abaixo para explicar minha dúvida:

Sistema 1
http://sistema1.com/index.php (página de acesso pedindo as credenciais)
http://sistema1.com/logado.php (página depois do usuário ter se logado)

sistema 2
http://sistema2.com/index.php (página de acesso pedindo as credenciais)
http://sistema2.com/logado.php (página depois do usuário ter se logado)

Gostaria que dentro da página (http://sistema1.com/logado.php), estivesse um link para a página(http://sistema2.com/logado.php), e que não pedisse senha, pois já estaria logado no sistema1, já tentei diversas formas, mas não obtive sucesso, tentei usar o cURL também, mas não consegui. Alguém sabe como fazer isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que seria basicamente voce criar um link pra quem estiver logado em um dos sistemas acessar, sendo que quando fosse acessar o link o sistema faria um verificação se o usuário está logado ou autorizado(sem informar a senha ou usuario pois já teria informado antes) a acessar através do usuário e senha informado anteriormente.

 

Ob:O usuário e senha no caso estaria armazenado em session.

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que seria basicamente voce criar um link pra quem estiver logado em um dos sistemas acessar, sendo que quando fosse acessar o link o sistema faria um verificação se o usuário está logado ou autorizado(sem informar a senha ou usuario pois já teria informado antes) a acessar através do usuário e senha informado anteriormente.

 

Ob:O usuário e senha no caso estaria armazenado em session.

 

Abraço.

Obrigado pela resposta Santos, mas pode me ajudar a entender como fazer isso?

 

No código, tem algo como

" if user = pass loga"

 

Como fazer com que fique o login dos 2 jeitos, exemplo se o login foi feito pelo sistema 2, e o usuario queira entrar no sistema 1, ou vice-versa.

 

Pensei que no próprio link eu poderia embutir o usuario e a senha do usuario, isso não é possível??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela resposta Santos, mas pode me ajudar a entender como fazer isso?

 

No código, tem algo como

" if user = pass loga"

 

Como fazer com que fique o login dos 2 jeitos, exemplo se o login foi feito pelo sistema 2, e o usuario queira entrar no sistema 1, ou vice-versa.

 

Pensei que no próprio link eu poderia embutir o usuario e a senha do usuario, isso não é possível??

 

Obrigado pela resposta Santos, mas pode me ajudar a entender como fazer isso?

 

No código, tem algo como

" if user = pass loga"

 

Como fazer com que fique o login dos 2 jeitos, exemplo se o login foi feito pelo sistema 2, e o usuario queira entrar no sistema 1, ou vice-versa.

 

Pensei que no próprio link eu poderia embutir o usuario e a senha do usuario, isso não é possível??

O que voce já tem feito?

 

Quando o usuário logar em qualquer um dos sistemas voce armazena o login em sessões, a partir disso quando o usuário for acessar o outro sistema voce faz uma verificação se o login está gravado na sessão, se estiver gravado ele tem acesso liberado, se não é redirecionado para fazer login.

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Não utilizaria session, pois teria alguns problemas com a segurança do projeto. Logo que ao logar em um dos sistemas, passaria dados da sessions através de patch ou outro meio para o outro servidor recuperar a session ativa, e quando fosse destruir a mesma em um servidor, continuaria ativa no outro. (A não ser que eu esteja falando asneiras e não saiba que existe algum método que possa interligar os dois servidores sem dor de cabeça através de sessions).
Bom, se eu estivesse diante dessa situação, resolveria assim:
Criaria uma tabela "AUTH" em ambos servidores, com as colunas:
ID | USER | PASS | TOKEN | TIME
AUTENTICAÇÃO:
Toda vez que logar em um dos servidores - como os bancos já estão ligados no processo de inserção e modificação dos dados - criaria um novo valor em AUTH, como:
id auto-increment | admin | teste123 | (hash 32bit) | 2014-08-04 21:23:50
Desse modo, teria disponível o usuário logado, senha do mesmo, uma hash de 32 bit, podendo ser codificada com md5 - Melhor ainda seria criar uma encriptação pessoal interna no scrpit com mais hash, ou criar uma de 128 bit, e depois encriptar a mesma para md5 (o próprio PHPMYADMIN usa esse método de segurança)..
O time seria usado para expirar esse token, deletando o mesmo do banco de dados depois de 5 ou 10 min de inatividade..
EXEMPLO
AUMENTAR SEGURANÇA
Poderia integrar esse token, com as sessions, evitando que terceiros acessem no mesmo momento que o usuário com o mesmo token. A session bloquearia esse acesso.
Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Não utilizaria session, pois teria alguns problemas com a segurança do projeto. Logo que ao logar em um dos sistemas, passaria dados da sessions através de patch ou outro meio para o outro servidor recuperar a session ativa, e quando fosse destruir a mesma em um servidor, continuaria ativa no outro. (A não ser que eu esteja falando asneiras e não saiba que existe algum método que possa interligar os dois servidores sem dor de cabeça através de sessions).
Bom, se eu estivesse diante dessa situação, resolveria assim:
Criaria uma tabela "AUTH" em ambos servidores, com as colunas:
ID | USER | PASS | TOKEN | TIME
AUTENTICAÇÃO:

Toda vez que logar em um dos servidores - como os bancos já estão ligados no processo de inserção e modificação dos dados - criaria um novo valor em AUTH, como:
id auto-increment | admin | teste123 | (hash 32bit) | 2014-08-04 21:23:50
Desse modo, teria disponível o usuário logado, senha do mesmo, uma hash de 32 bit, podendo ser codificada com md5 - Melhor ainda seria criar uma encriptação pessoal interna no scrpit com mais hash, ou criar uma de 128 bit, e depois encriptar a mesma para md5 (o próprio PHPMYADMIN usa esse método de segurança)..
O time seria usado para expirar esse token, deletando o mesmo do banco de dados depois de 5 ou 10 min de inatividade..
EXEMPLO
AUMENTAR SEGURANÇA
Poderia integrar esse token, com as sessions, evitando que terceiros acessem no mesmo momento que o usuário com o mesmo token. A session bloquearia esse acesso.
Abraço

 

 

Obrigado pela ajuda leomarriel, mas do seu jeito eu teria que alterar o código para procurar pelo token, se eu entendi bem rs, e achei mais complicado.

 

 

 

O que voce já tem feito?

 

Quando o usuário logar em qualquer um dos sistemas voce armazena o login em sessões, a partir disso quando o usuário for acessar o outro sistema voce faz uma verificação se o login está gravado na sessão, se estiver gravado ele tem acesso liberado, se não é redirecionado para fazer login.

 

Abraço.

 

Santos, eu entendi o que disse, e tentei fazer com o código abaixo:

 

 

<form action="http://sistema2.com" method="post" name="formlogin">

<input title="usuario" type="hidden" name="Usuario" id="Usuario" maxlength="150" value="<?php print $_SESSNION['login_usuario'] ?>" />
<input title="Senha" type="hidden" name="Senha" id="Senha" value="<?php print $_POST['senha_usuario'] ?>" />
<button type="submit" value="Sistema2</button>
</form>

 

Assim os dados que são armazenados ($_SESSION e $_POST), já estão prontos para usar nesse form que só é visível em um botão, eu testei e está OK, porém gostaria de saber se do modo que estou fazendo é correto e seguro.

 

Obrigado!

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.