Skip to main content

Authentification Better Auth - Remora Trading

🚀 Configuration

Note importante : Les relations entre les utilisateurs et les données de trading (exchanges, positions) sont temporairement désactivées pour stabiliser l’authentification. Elles seront réactivées une fois que l’auth sera complètement testée et déployée.

1. Variables d’environnement

Ajoutez ces variables à votre fichier .env :
# Better Auth
BETTER_AUTH_SECRET=your-better-auth-secret-here

# OAuth Providers
GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-client-secret
GITHUB_CLIENT_ID=your-github-client-id
GITHUB_CLIENT_SECRET=your-github-client-secret

2. Configuration OAuth

Google OAuth

  1. Allez sur Google Cloud Console
  2. Créez un nouveau projet ou sélectionnez un projet existant
  3. Activez l’API Google+ et l’API Google Identity
  4. Créez des identifiants OAuth 2.0
  5. Ajoutez http://localhost:3000 et votre domaine de production aux URI de redirection

GitHub OAuth

  1. Allez sur GitHub Developer Settings
  2. Créez une nouvelle OAuth App
  3. Ajoutez http://localhost:3000 et votre domaine de production aux URLs de redirection

3. Déploiement

# Déployer l'infrastructure SST
npm run deploy

# Les routes d'authentification seront disponibles sur :
# - Production: https://api.poihunter.com/auth/*
# - Développement: https://api.dev.poihunter.com/auth/*

🔧 Utilisation

Frontend (Nuxt.js)

// Dans un composant Vue
const { user, signIn, signOut, isAuthenticated } = useAuth()

// Connexion
await signIn('[email protected]', 'password')

// Connexion sociale
await signInWithGoogle()
await signInWithGitHub()

// Déconnexion
await signOut()

Backend (Lambda Functions)

// Vérifier l'authentification
const authService = new AuthService(prisma)
const isAuth = await authService.isAuthenticated(sessionToken)
const user = await authService.getUserFromSession(sessionToken)

📊 Fonctionnalités

✅ Implémentées

  • Authentification email/mot de passe
  • Connexion sociale (Google, GitHub)
  • Gestion des sessions
  • Middleware de protection des routes
  • Interface utilisateur complète
  • Intégration MongoDB/Prisma
  • Support TypeScript

🚧 À venir

  • Authentification à deux facteurs (2FA)
  • Gestion des organisations
  • Réinitialisation de mot de passe
  • Vérification d’email
  • Gestion des rôles et permissions
  • Liaison des utilisateurs aux données de trading (exchanges, positions)

🔒 Sécurité

Mesures implémentées

  • Sessions sécurisées avec cookies HttpOnly
  • Validation côté serveur et client
  • Protection CSRF
  • Chiffrement des mots de passe
  • Rate limiting (à configurer)

Recommandations

  • Utilisez HTTPS en production
  • Configurez des secrets robustes
  • Activez la vérification d’email
  • Implémentez le 2FA pour les comptes sensibles
  • Surveillez les tentatives de connexion

🐛 Dépannage

Erreurs courantes

  1. “Invalid credentials”
    • Vérifiez les identifiants OAuth
    • Assurez-vous que les URLs de redirection sont correctes
  2. “Database connection failed”
    • Vérifiez la variable MONGODB_DSN
    • Assurez-vous que Prisma est configuré correctement
  3. “CORS error”
    • Vérifiez la configuration trustedOrigins dans auth.ts
    • Ajoutez votre domaine à la liste

Logs

Les logs d’authentification sont disponibles dans CloudWatch :
  • Production: /aws/lambda/poihunter-prod-auth
  • Développement: /aws/lambda/poihunter-dev-auth

📚 Documentation