CoolFace
Apppublic

yamiclaws/auth-system-smtp

sourceHugging Faceupdated 3mo agoView on Hugging Face
0likes
App README

Secure Authentication System with SMTP OTP Verification

A beginner-friendly authentication system with FastAPI backend and React frontend. Implements email OTP verification, JWT tokens, and password reset.

Features

  • —SMTP Email OTP Verification (register + forgot password)
  • —Console fallback when SMTP is not configured
  • —JWT Access & Refresh Token system with rotation
  • —Token revocation on logout
  • —Bcrypt password hashing
  • —Rate limiting & request logging
  • —Minimal dark-theme UI

Tech Stack

  • —Backend: FastAPI, SQLite, SQLAlchemy, Pydantic, bcrypt, python-jose
  • —Frontend: React 18, Vite, plain CSS (no router, no axios)

Project Structure

├── Dockerfile
├── backend/
│   ├── main.py            # Single file: all routes, models, auth, email
│   ├── requirements.txt
│   ├── .env
│   └── users.db
└── frontend/
    ├── package.json
    ├── vite.config.js
    ├── index.html
    └── src/
        ├── main.jsx
        ├── App.jsx        # Single component, all pages
        ├── App.css
        └── index.css

Local Development

Backend

bash
cd backend
pip install -r requirements.txt
uvicorn main:app --reload --port 8000

Frontend

bash
cd frontend
npm install
npm run dev

Deploy to Hugging Face Spaces

  1. 1.Create a new Space at huggingface.co with Docker SDK
  2. 2.Add secrets in Settings > Variables and secrets:
  3. 3.SECRET_KEY = any random string
  4. 4.DATABASE_URL = sqlite:////app/users.db
  5. 5.SMTP_SERVER = smtp.gmail.com
  6. 6.SMTP_PORT = 587
  7. 7.SMTP_USER = your gmail
  8. 8.SMTP_PASSWORD = your app password
  9. 9.Push code to the Space repo