Vincular login ao dispositivo

6 views
Skip to first unread message

Luiz Gustavo Mafra

unread,
Dec 11, 2015, 8:49:33 AM12/11/15
to ph...@googlegroups.com
Galera boa tarde,

Em um sistema que estou desenvolvendo, eu gostaria de vincular o login do usuário ao dispositivo que ele utilizou a primeira vez, por exemplo, se eu logar a primeira vez no meu computador eu vou ficar vinculado a ele e só poderei utilizar o meu computador.
Eu só poderia estar utilizando outro computador, se o admin do sistema for e me desvincular.

Existe alguma forma de se fazer isso??
Vocês teriam algum dica de como fazer??

Att,

--
Luiz Gustavo S. Mafra
Bacharel em Ciência da Computação - UESC - Universidade Estadual de Santa Cruz
Analista de Sistemas - Santa Casa de Misericórdia de Itabuna
Desenvolvedor PHP, Android, .Net, Python, JEE

+55 73 9147 0547
+55 73 8888 7500

twitter: @lgmafra
skype: lgmafra

Edy

unread,
Dec 11, 2015, 9:03:38 AM12/11/15
to ph...@googlegroups.com
É um sistema que roda dentro da empresa ou global? Porque se for na empresa, você pode vincular ao nome do computador do usuário no domínio de rede. Caso seja global vc pode vincular ao IP dele.

--
PHPBA
---
Você recebeu essa mensagem porque está inscrito no grupo "PHPBA" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para phpba+un...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--

 www.edyonil.com
 Desenvolvimento de sites, hotsites, blogs e intranets. - Salvador-BAHIA
 twitter: @edyonil
 Fone: (71)8615-9790

Luiz Gustavo Mafra

unread,
Dec 11, 2015, 9:04:39 AM12/11/15
to ph...@googlegroups.com
Olá Edy,

O sistema vai ser global.

Edy

unread,
Dec 11, 2015, 9:09:41 AM12/11/15
to ph...@googlegroups.com
Então cara, faz pelo IP mesmo! Você obtém no momento do Login o IP dele e grava no banco! Depois é só testar...

Tem alguns locais que falam de pegar o MAC Address do PC que é mais confiável. Mas não sei se é possível com php

Em 11 de dezembro de 2015 11:04, Luiz Gustavo Mafra <lgm...@gmail.com> escreveu:
ma vai ser gl

Társis Lima

unread,
Dec 11, 2015, 9:09:50 AM12/11/15
to ph...@googlegroups.com
Vincular o IP não seria tão confiável, pois o cliente pode estar utilizando um IP dinâmico ou um proxy. 

Acredito que o caminho seja você pegar dados de hardware como fazem as aplicações de módulo de segurança de internet banking. 

Luiz Gustavo Mafra

unread,
Dec 11, 2015, 9:19:15 AM12/11/15
to ph...@googlegroups.com
A questão de utilizar o IP eu já descartei justamente por esse motivo de utilizar IP dinâmico.
Társis, você sabe como eu poderia pegar informações do hardware com o PHP??

Eu vi na net um modo de pegar o MAC, só não testei ainda se pega do lado do servidor, ou, se eu conseguiria pegar do lado do cliente tb

Társis Lima

unread,
Dec 11, 2015, 9:42:09 AM12/11/15
to ph...@googlegroups.com
Nunca fiz nada parecido, mas provalvelmente vai precisar de um programa para isso na máquina do cliente ou talvez um applet java assinado (certificado digital). 

Jonata Weber

unread,
Dec 11, 2015, 10:18:28 AM12/11/15
to ph...@googlegroups.com
Luiz,

Você pode gerar e salvar um token único no WebStorage via JavaScript, esse token estará "linkado" ao login dele no seu servidor. A partir daí o usuário só consegue acessar a máquina que tiver o token localmente. Para ele acessar outra máquina, você só precisar expirar o token no servidor e gerar outro em outra máquina. Para criar esse token único, você pode concatenar informações de browser, IP, timestamp, e depois gerar um MD5 dessa string. Entendeu?

Abraço,

Jonata Weber

Luiz Gustavo Mafra

unread,
Dec 11, 2015, 11:38:36 AM12/11/15
to ph...@googlegroups.com
Entendi Jonata,

No caso, eu teria que ter o token que foi gerado salvo no BD para a cada login comparar com o que estiver no WebStorage?

Att,

Jonata Weber

unread,
Dec 11, 2015, 11:54:58 AM12/11/15
to ph...@googlegroups.com
Isso!

O fluxo positivo do login seria algo assim:
- Checa se o usuário possui um token ativo (gerado e não expirado) no BD;
  - Se estiver ativo, compara com o que foi salvo no WebStorage;
       - Se for divergente: "usuário não tem permissão para acessar esse computador";
  - Se não estiver ativo, gera um token e salva no WebStorage;

Acredito que isso atenda ao que você precisa.

Luiz Gustavo Mafra

unread,
Dec 11, 2015, 11:59:59 AM12/11/15
to ph...@googlegroups.com
Cara, 

Acredito que vai atender sim ao que estou precisando. Deixa eu tirar mais uma duvida com você, esse token que vai ser salvo no WebStorage, ele tem um tempo para expirar??
Ou ele só expira a partir do momento que o usuário solicita?


Jonata Weber

unread,
Dec 11, 2015, 12:16:03 PM12/11/15
to ph...@googlegroups.com
Dentro do WebStorage tem o SessionStorage que precisa ter uma data de expiração, e o LocalStorage que não expira. Apenas a sua aplicação (via JS) ou o próprio o usuário podem remover manualmente. Sua aplicação não precisa nem remover localmente, basta gerar outro token no servidor e mantê-lo como ativo.
Reply all
Reply to author
Forward
0 new messages