Pular para o conteúdo

Authenticação/Limite de usuarios

Responder tópico
  • Denunciar
  • Indicar

1. Authenticação/Limite de usuarios

Enviado em 07/05/2016 - 20:01h

Boa noite gostaria de ajuda com meu script minha intenção e essa o cliente tem outro script que envia 2 dados no caso o ip e usuario, queria ler o ip e delimitar 5 usuários nesse determinado ip se fosse tentando logar o sexto o código avisaria e retornaria.

Tentativas até agora

	my	%data = ($args->{args}{'IP'} => $args->{username}); #Recebe o ip e o username
my @IP = keys %data;
my @Users = values %data;
my $size = @Users;

foreach my $IP (@IP) {
if ($IP && $size > 5) { #Aqui seria a verificação se estivessem mais de 5 usuários no ip falharia a autenticação

print "Limite máximo de conexão atingido\n";

return $args->{auth_failed};

}
}

Responder tópico

2. Re: Authenticação/Limite de usuarios

Enviado em 08/05/2016 - 10:45h

Ola,

Não sei como esta a coisa ou como você esta fazendo isso... é uma aplicação web? uma API?

Do mais, para resolver isso você pode usar um storage (banco NoSQL tipo Redis, por exemplo), armazena as informações de ip + username lá e pegue quando um novo ip + username for enviado para validar a sua regra.

Isso deve resolver a principio!

Abs

3. Re: Authenticação/Limite de usuarios

Enviado em 08/05/2016 - 10:59h

e pra uma api não teria alguma forma de não precisar um banco de dados só armazenar em uma variável?

4. Re: Authenticação/Limite de usuarios

Enviado em 08/05/2016 - 14:12h

Tudo depende de quão confiável você quer que sua solução seja...

Você sempre pode fazer uma solução em pure-perl mas acho que você não deveria pois teria que pensar em disponibilidade, escalabilidade, confiabilidade, etc...

Como disse não sei qual a sua necessidade real mas você vai precisar de algum lugar para guardar essas informações, controlar timeout dos logins, talvez o que você queira fazer não seja tão simples assim infelizmente, principalmente em se tratando de uma API.

Abs

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder