Files
rodrigonet/AUTHENTICATION-SYSTEM.md
T
rodrigo 25827aa049 fix ajuda
Signed-off-by: Rodrigo B. de Sousa Martins <rodrigo.sousa.577@gmail.com>
2025-08-08 10:30:47 -03:00

184 lines
4.0 KiB
Markdown

# 🛡️ Sistema de Autenticação do Bot
## ✅ **IMPLEMENTADO COM SUCESSO**
### 🔐 **Controle de Acesso**
**Usuários Autorizados:** Apenas usuários na lista podem usar o bot
**Configuração:** Via arquivo `.env`
**Verificação:** Todas as mensagens e callbacks são verificados
### 📝 **Configuração**
**Arquivo:** `.env`
```properties
# IDs dos usuários autorizados (separados por vírgula)
ALLOWED_USERS=593272271
```
**Para adicionar mais usuários:**
```properties
ALLOWED_USERS=593272271,123456789,987654321
```
### 🚫 **Mensagem de Acesso Negado**
Usuários não autorizados recebem:
```
🚫 Acesso Negado
❌ Você não tem permissão para usar este bot.
🆔 Seu ID: 123456789
📞 Entre em contato com o administrador para solicitar acesso.
```
### 👤 **Como Descobrir ID do Usuário**
1. **Usuário envia mensagem para o bot**
2. **Bot responde com o ID na mensagem de negação**
3. **Ou use o comando:** `meu id`
### 🛠️ **Comandos Administrativos**
#### **`admin`** - Painel Administrativo
```
🛡️ Painel Administrativo
👥 Gestão de Usuários:
• usuarios autorizados - Ver lista de usuários
• meu id - Ver seu ID do Telegram
📊 Sistema:
• status - Status do bot
• equipamentos - Lista de equipamentos
🔧 Comandos disponíveis:
• Ver sinal, adicionar ONU, remover ONU
• Resetar ONU, atualizar firmware
• Gerenciar usuários Juniper
```
#### **`usuarios autorizados`** - Lista de Usuários
```
👥 Usuários Autorizados
📊 Total: 1 usuário(s)
1. ID: 593272271
🆔 Seu ID: 593272271
```
#### **`meu id`** - Identificação do Usuário
```
🆔 Sua Identificação
👤 User ID: 593272271
💬 Chat ID: 593272271
📋 Use estes IDs para configurar permissões
```
### 🔧 **Implementação Técnica**
#### **Verificação de Autorização**
```javascript
isAuthorized(userId) {
if (config.bot.allowedUsers.length === 0) {
return true; // Se não há lista, permite todos
}
return config.bot.allowedUsers.includes(userId);
}
```
#### **Proteção de Mensagens**
```javascript
// Verificar autorização
if (!this.isAuthorized(userId)) {
await this.bot.sendMessage(chatId, '🚫 Acesso Negado...');
return;
}
```
#### **Proteção de Callbacks**
```javascript
// Verificar autorização
if (!this.isAuthorized(userId)) {
await this.bot.answerCallbackQuery(callbackQuery.id, '🚫 Acesso negado');
return;
}
```
### 📊 **Logs de Segurança**
**Acesso negado:**
```
🚫 Acesso negado para usuário João (123456789)
🚫 Callback negado para usuário (123456789)
```
**Mensagens de usuários autorizados:**
```
📨 Mensagem de Rodrigo (593272271): admin
```
### 🚀 **Para Adicionar Novo Usuário**
1. **O usuário envia mensagem para o bot**
2. **Bot responde com o ID dele**
3. **Administrador adiciona o ID no `.env`:**
```properties
ALLOWED_USERS=593272271,NOVO_ID_AQUI
```
4. **Reiniciar o bot**
5. **Usuário já pode usar o bot**
### ⚡ **Exemplo de Uso**
**Usuário não autorizado tenta usar:**
```
Usuário: ver sinal DACM123456
Bot: 🚫 Acesso Negado
🆔 Seu ID: 123456789
```
**Administrador adiciona ID e reinicia bot:**
```properties
ALLOWED_USERS=593272271,123456789
```
**Usuário já autorizado:**
```
Usuário: ver sinal DACM123456
Bot: 📡 Selecione a OLT para verificar o sinal...
```
### 🛡️ **Segurança Implementada**
- ✅ **Controle total de acesso**
- ✅ **Verificação em todas as operações**
- ✅ **Logs de tentativas de acesso**
- ✅ **Mensagens informativas para negação**
- ✅ **Comandos administrativos**
- ✅ **Identificação de usuários**
### 🎯 **Status**
**Sistema de autenticação 100% funcional!**
**Usuário autorizado atual:** Rodrigo (593272271)
**Para testar:** Reinicie o bot e use `admin` para ver o painel
```bash
cd c:\Users\rodri\build\bot-ajuda
npm start
```
**No Telegram:**
- `admin` - Ver painel administrativo
- `usuarios autorizados` - Ver lista de usuários
- `meu id` - Ver seu ID
**Agora seu bot está seguro!** 🛡️✨