<n8n version: 2.20.7
Database: SQLite (default)
Running via: Docker (self-hosted, Ubuntu 24.04 on DigitalOcean)
Reverse proxy: nginx with SSL via Certbot/Let’s Encrypt
المشكلة:
لدي مثيلا n8n بنفس الاستضافة الذاتية:
Production: n8n.revvittsystems.com — Gmail OAuth يعمل بشكل مثالي، بما في ذلك إنشاء بيانات اعتماد جديدة تماماً
Staging: staging.revvittsystems.com — Gmail OAuth يفشل مع Error 400: redirect_uri_mismatch في كل مرة
كلا المثيلين يشغل n8n 2.20.7 على Docker مع reverse proxy nginx. كلاهما يستخدم نفس تطبيق Google Cloud OAuth (نفس Client ID/Secret). حاولت أيضاً إنشاء عميل OAuth منفصل تماماً بـ redirect URI للـ staging فقط — نفس الخطأ.
ما أكدته:
رابط redirect URI المعروض في واجهة n8n staging هو https://staging.revvittsystems.com/rest/oauth2-credential/callback
هذا الرابط بالضبط مسجل في Google Cloud Console تحت Authorized redirect URIs
فككت رابط خطأ Google وأكدت أن redirect_uri الذي يرسله n8n هو https://staging.revvittsystems.com/rest/oauth2-credential/callback — يطابق بالضبط
تم تعيين X-Forwarded-Proto $scheme في nginx بحيث ينشئ n8n بشكل صحيح https://
تم نشر التطبيق للـ Production في شاشة موافقة Google OAuth
تم الاختبار في نافذة incognito — نفس الخطأ
إنشاء بيانات اعتماد جديدة على production يعمل فوراً — تطبيق Google OAuth نفسه بخير
إنشاء عميل OAuth جديد منفصل تماماً للـ staging يفشل أيضاً مع نفس الخطأ
ملف .env للـ Staging:
N8N_HOST=staging.revvittsystems.com
N8N_PORT=5678
N8N_PROTOCOL=https
WEBHOOK_URL=https://staging.revvittsystems.com/
N8N_EDITOR_BASE_URL=https://staging.revvittsystems.com
GENERIC_TIMEZONE=America/New_York
إعدادات nginx للـ Staging:
server {
listen 443 ssl;
server_name staging.revvittsystems.com;
ssl_certificate /etc/letsencrypt/live/staging.revvittsystems.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/staging.revvittsystems.com/privkey.pem;
large_client_header_buffers 4 16k;
location / {
proxy_pass http://localhost:5678;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection ‘upgrade’;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_buffer_size 16k;
proxy_buffers 4 16k;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
ملاحظة إضافية: عند تسجيل الدخول كحساب المالك/المسؤول على staging، النقر على “Sign in with Google” يعطي خطأ 414 URI Too Long بدلاً من ذلك (خطأ معروف في n8n حيث يتم إلحاق نطاقات المسؤول بالعنوان). إنشاء من حساب عضو غير مسؤول يتجاوز الخطأ 414 لكنه يصطدم بـ redirect_uri_mismatch.
السؤال: ما الذي يمكن أن يسبب redirect_uri_mismatch عندما يكون الرابط مؤكداً صحيحاً ويطابق بالضبط؟ هل هناك شيء محدد حول تدفق OAuth في n8n 2.20.7 قد يسبب هذا على مثيل جديد؟!-- مرحباً! أسرع طريقة للعثور على الحلول هي استخدام وظيفة
البحث في الأعلى يميناً.
إذا لم يتم طرح سؤالك من قبل، يرجى اتباع النموذج أدناه. تجاوز الأسئلة التي لا تنطبق عليك.
يمكنك النشر بأي لغة - سنترجم منشورك لك!
→
وصف المشكلة/الخطأ/السؤال
ما رسالة الخطأ (إن وجدت)؟
يرجى مشاركة سير العمل الخاص بك
(حدد العُقد على قماشتك واستخدم اختصارات لوحة المفاتيح CMD+C/CTRL+C و CMD+V/CTRL+V لنسخ ولصق سير العمل.)
مشاركة المخرجات التي أرجعتها العقدة الأخيرة
معلومات عن إعداد n8n الخاص بك
- n8n version:
- Database (default: SQLite):
- n8n EXECUTIONS_PROCESS setting (default: own, main):
- Running n8n via (Docker, npm, n8n cloud, desktop app):
- Operating system: