╔══════════════════════════════════════════════════════════════╗
║   راهنمای آپلود فایل‌های تغییر یافته - سیستم احراز هویت    ║
╚══════════════════════════════════════════════════════════════╝

📦 محتویات این بسته:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📁 فایل‌های اصلی تغییر یافته:
  ✓ includes/functions.php
  ✓ login.php
  ✓ includes/header.php
  ✓ config/config.php
  ✓ dashboard.php
  ✓ my-esims.php

📁 فایل‌های API (قبلاً موجود بودند):
  ✓ api/verify-otp.php
  ✓ api/register-user.php

📁 فایل‌های کمکی:
  ✓ assets/js/auth-token.js
  ✓ test-token-auth.php (صفحه تست - جدید)

📁 مستندات:
  ✓ TOKEN_AUTH_FIX.md
  ✓ TOKEN_AUTO_INJECT.md


🚀 مراحل آپلود:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

مرحله 1: پشتیبان‌گیری
─────────────────────
⚠️  خیلی مهم! قبل از هر کاری، از فایل‌های فعلی خود backup بگیرید:
   
   cd /path/to/your/project
   cp -r includes includes.backup
   cp -r config config.backup
   cp -r api api.backup
   cp login.php login.php.backup
   cp dashboard.php dashboard.php.backup
   cp my-esims.php my-esims.php.backup


مرحله 2: استخراج فایل‌ها
─────────────────────
   unzip token-auth-fix.zip


مرحله 3: آپلود فایل‌ها
─────────────────────
   فایل‌های استخراج شده را با حفظ ساختار پوشه‌ها جایگزین کنید:

   ✓ includes/functions.php      → /path/to/your/project/includes/
   ✓ includes/header.php         → /path/to/your/project/includes/
   ✓ config/config.php           → /path/to/your/project/config/
   ✓ login.php                   → /path/to/your/project/
   ✓ dashboard.php               → /path/to/your/project/
   ✓ my-esims.php                → /path/to/your/project/
   ✓ test-token-auth.php         → /path/to/your/project/
   ✓ api/verify-otp.php          → /path/to/your/project/api/
   ✓ api/register-user.php       → /path/to/your/project/api/
   ✓ assets/js/auth-token.js     → /path/to/your/project/assets/js/


مرحله 4: بررسی جدول دیتابیس
─────────────────────
   مطمئن شوید جدول auth_tokens وجود دارد:
   
   1. به آدرس زیر بروید:
      https://yourdomain.com/create-auth-tokens-table.php
   
   2. اگر جدول ساخته نشد، این SQL را در phpMyAdmin اجرا کنید:
   
      CREATE TABLE IF NOT EXISTS auth_tokens (
          id INT AUTO_INCREMENT PRIMARY KEY,
          user_id INT NOT NULL,
          token VARCHAR(64) NOT NULL UNIQUE,
          expires_at DATETIME NOT NULL,
          created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
          updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
          INDEX idx_token (token),
          INDEX idx_user_id (user_id),
          INDEX idx_expires_at (expires_at),
          FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;


مرحله 5: تست سیستم
─────────────────────
   1. پاک کردن Cache مرورگر (Ctrl+Shift+Delete)
   
   2. لاگین کردن:
      - به /login.php بروید
      - شماره موبایل و کد OTP را وارد کنید
      - Console مرورگر (F12) را باز کنید
      - باید پیام "✅ لاگین موفق - Token ذخیره شد" را ببینید
   
   3. تست Navigation:
      - روی "eSIM های من" کلیک کنید
      - روی "داشبورد" کلیک کنید
      - نباید دوباره درخواست لاگین بشود!
   
   4. تست پیشرفته:
      - به /test-token-auth.php بروید
      - اطلاعات Token و Session را بررسی کنید


🔧 عیب‌یابی:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

❌ مشکل: هنوز درخواست لاگین می‌کند
✅ راه‌حل:
   1. Console مرورگر را باز کنید و خطاها را چک کنید
   2. مطمئن شوید جدول auth_tokens وجود دارد
   3. Cache مرورگر را پاک کنید
   4. localStorage را چک کنید: localStorage.getItem('auth_token')

❌ مشکل: خطای JavaScript
✅ راه‌حل:
   1. مطمئن شوید /assets/js/auth-token.js آپلود شده
   2. Console را چک کنید برای دیدن خطای دقیق

❌ مشکل: خطای Database
✅ راه‌حل:
   1. مطمئن شوید جدول auth_tokens وجود دارد
   2. Foreign key را چک کنید (جدول users باید موجود باشد)


📝 یادداشت‌های مهم:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

• Token ها 30 روز اعتبار دارند
• Session به عنوان اولویت اول چک می‌شود
• Token فقط برای fallback استفاده می‌شود
• در موبایل/WebView عالی کار می‌کند
• نیازی به تغییر سایر فایل‌ها نیست


📞 پشتیبانی:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

اگر مشکلی پیش آمد:
1. فایل‌های مستندات (TOKEN_AUTH_FIX.md و TOKEN_AUTO_INJECT.md) را بخوانید
2. به /test-token-auth.php بروید و اطلاعات را بررسی کنید
3. در صورت نیاز، از backup استفاده کنید


✅ موفق باشید!

تاریخ: 2025-01-13
نسخه: 2.0

