Duvida

32 views
Skip to first unread message

António Miguel

unread,
Jun 30, 2023, 10:53:46 AM6/30/23
to Laravel Brasil
Saudações pessoal, sou novo aqui no grupo.
Estou a desenvolver um System ERP usando o Laravel, me deparei com uma questão pedida pelo cliente para poder implementar uma funcionalidade de controlo de licença de uso do software (Mensais, Trimestrais e anuais)... 

Gostaria de saber como faço isso?

Tentei validar a licença peganda a data de expiração e comparar com a data actual do servidor, mas e se o usuário alterar a hora de sua maquina ou se a data do servidor for altera essa lógica perde seu efeito, agrdeço toda ajuda

Guilherme Tonelotti

unread,
Jun 30, 2023, 11:01:33 AM6/30/23
to laravel...@googlegroups.com
Já fiz algo assim utilizando uma plataforma de pagamento que é o Stripe, onde ele armazena a data da compra e a data de expiração e você pode acessar esses dados via API mando o hash da compra, e você armazena em seu banco de dados o hash de pagamento junto com o id do usuario que fez ela, isso no momento do pagamento, e o que você pode fazer é sempre que esse usuario entrar na rota protegida fazer a validação da data de expiração, e para validar a data de expiração com a data do servidor, apenas a data do servidor já deveria ser o suficiente tendo em vista que uma alteração de data do servidor deveria ser algo improvável de acontecer, entretanto você sempre pode fazer uma chama de API em algum servidor que disponibiliza a data atual

--
Você recebeu essa mensagem porque está inscrito no grupo "Laravel Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para laravel-brasi...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/laravel-brasil/f2f059db-114f-470f-94fa-996c1d17b3a5n%40googlegroups.com.

António Miguel

unread,
Jun 30, 2023, 11:31:49 AM6/30/23
to Laravel Brasil
Muito Obrigado já resolve, mas no caso de um servidor local não há como contornar tal situação?

Thiago Pereira

unread,
Jun 30, 2023, 11:35:46 AM6/30/23
to laravel...@googlegroups.com
O certo seria para cada licença vc armazenar qual a data de expiração no seu banco de dados e no momento do login do usuário vc fazer a validação.

Guilherme Tonelotti

unread,
Jun 30, 2023, 11:46:32 AM6/30/23
to laravel...@googlegroups.com
Então, mas por exemplo se você usar uma função date do php, ou uma função de data do Laravel, vc já vai retornar a data atual do servidor, lembre-se de configurar isso nos arquivos de configuração do Laravel, lá vc pode definir o fuso horário e o padrão, então independente do servidor seu back-end vai ter a data correta, por exemplo no seu servidor local vai ser a data e hora de hoje, se você hospedar sua aplicação no AWS, num servidor da america do norte, vai continuar com as datas daqui, não sei se era essa sua duvida, mas caso não for, fique a vontade de perguntar até ficar esclarecido

António Miguel

unread,
Jun 30, 2023, 11:52:27 AM6/30/23
to Laravel Brasil
Certo, obrigado!

António Miguel

unread,
Jun 30, 2023, 11:52:54 AM6/30/23
to Laravel Brasil
Certo, muito obrigado estou esclarecido e com mais ideias.

Neto

unread,
Jul 2, 2023, 8:45:26 AM7/2/23
to laravel...@googlegroups.com
Rapaz, se o código não vai rodar no seu ambiente, você corre muito risco, pois PHP é um código interpretado, e aberto, a pessoa pode ir lá no código e simplesmente comentar o trecho de código que valida a licença.
Você tem basicamente 2 caminhos:

1 - Hospeda isso em seu servidor e você controla tudo
2 - Passa seu código por algum tipo de criptografia (como o Zend Guard), para que a pessoa não possa acessar o código-fonte.

Tirando isso, é perda de tempo procurar uma solução eficaz.

José Neto - Software Engineer




Reply all
Reply to author
Forward
0 new messages