-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathauth_cliente.php
More file actions
124 lines (99 loc) · 3.37 KB
/
auth_cliente.php
File metadata and controls
124 lines (99 loc) · 3.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<?php
// Função para gerar hash da senha
function gerarHashSenha($senha) {
return password_hash($senha, PASSWORD_DEFAULT);
}
// Função para verificar senha
function verificarSenha($senha, $hash) {
return password_verify($senha, $hash);
}
// Função para definir senha do cliente
function definirSenhaCliente($token, $senha) {
$senhasFile = dirname(__FILE__) . "/senhas_clientes.json";
// Carregar dados das senhas
$senhasData = [];
if (file_exists($senhasFile)) {
$senhasData = json_decode(file_get_contents($senhasFile), true);
}
// Gerar hash da senha
$hashSenha = gerarHashSenha($senha);
// Procurar se já existe senha para este token
$senhaEncontrada = false;
foreach ($senhasData as $index => $senhaInfo) {
if ($senhaInfo["token"] === $token) {
$senhasData[$index]["senha_hash"] = $hashSenha;
$senhasData[$index]["data_atualizacao"] = date("Y-m-d H:i:s");
$senhaEncontrada = true;
break;
}
}
// Se não encontrou, criar nova entrada
if (!$senhaEncontrada) {
$senhasData[] = [
"token" => $token,
"senha_hash" => $hashSenha,
"data_criacao" => date("Y-m-d H:i:s"),
"data_atualizacao" => date("Y-m-d H:i:s")
];
}
// Salvar dados atualizados
file_put_contents($senhasFile, json_encode($senhasData, JSON_PRETTY_PRINT));
return true;
}
// Função para verificar se cliente tem senha definida
function clienteTemSenha($token) {
$senhasFile = dirname(__FILE__) . "/senhas_clientes.json";
if (!file_exists($senhasFile)) {
return false;
}
$senhasData = json_decode(file_get_contents($senhasFile), true);
foreach ($senhasData as $senhaInfo) {
if ($senhaInfo["token"] === $token) {
return true;
}
}
return false;
}
// Função para autenticar cliente
function autenticarCliente($token, $senha) {
$senhasFile = dirname(__FILE__) . "/senhas_clientes.json";
if (!file_exists($senhasFile)) {
return false;
}
$senhasData = json_decode(file_get_contents($senhasFile), true);
foreach ($senhasData as $senhaInfo) {
if ($senhaInfo["token"] === $token) {
return verificarSenha($senha, $senhaInfo["senha_hash"]);
}
}
return false;
}
// Função para iniciar sessão
function iniciarSessao($token) {
session_start();
$_SESSION['cliente_token'] = $token;
$_SESSION['cliente_autenticado'] = true;
$_SESSION['tempo_login'] = time();
}
// Função para verificar se está autenticado
function verificarAutenticacao($token) {
session_start();
// Verificar se a sessão existe e é válida
if (!isset($_SESSION['cliente_autenticado']) ||
!isset($_SESSION['cliente_token']) ||
$_SESSION['cliente_token'] !== $token) {
return false;
}
// Verificar se a sessão não expirou (24 horas)
if (isset($_SESSION['tempo_login']) &&
(time() - $_SESSION['tempo_login']) > 86400) {
session_destroy();
return false;
}
return true;
}
// Função para fazer logout
function fazerLogout() {
session_start();
session_destroy();
}