إعدادات OAuth في N8n

ما أبسط طريقة لإدارة بيانات اعتماد OAuth الخاصة بـ Gmail و LinkedIn و Reddit وغيرها في n8n؟ إعداد كل هذه الرموز ومفاتيح API لكل خدمة يصبح مملاً. هل هناك طريقة مبسطة لتكوينها، وأين هو المكان الموصى به لتخزين بيانات الاعتماد هذه، في ملف .env، أم يمكن التعامل مع كل شيء مباشرة من خلال واجهة مستخدم n8n؟

جميع بيانات اعتمادك تعيش في تبويب بيانات الاعتمادية داخل n8n @Sturdy، لا حاجة لتشتيت التوكنات عبر ملفات .env. يشفر n8n كل شيء في قاعدة بياناته الخاصة، لذا يجب أن يحتوي ملف .env الخاص بك فقط على متغيرات التكوين الخاصة بـ n8n. إذا كنت تستضيف الخادم بنفسك، هناك شيء واحد حاسم: احفظ N8N_ENCRYPTION_KEY في مكان آمن. إذا فقدته، فإن بيانات الاعتمادية المخزنة لديك ستكون غير قابلة للاسترجاع تماماً.

ألم الإعداد هو في الغالب تكلفة لمرة واحدة لكل خدمة:

Gmail: أنشئ مشروع Google Cloud، وفعّل واجهة برمجة تطبيقات Gmail، وأنشئ شاشة موافقة OAuth، وأنشئ عميل OAuth. الصق عنوان URL للاستدعاء الذي توفره n8n. الجزء الذي يربك الجميع: انشر شاشة الموافقة الخاصة بك للإنتاج، وليس مجرد الاختبار. إذا تركتها في وضع الاختبار، ستلغي Google رمز التحديث الخاص بك كل 7 أيام وستحتاج إلى إعادة الاتصال باستمرار. يمكن إعادة استخدام نفس العميل لاحقاً لـ Google Sheets و Drive.

Reddit: مباشر وبسيط. ما عليك سوى تسجيل تطبيق سريع من صفحة تفضيلات Reddit الخاصة بك.

LinkedIn: الأكثر إحباطاً. واجهة برمجة التطبيقات الرسمية الخاصة بهم مقيدة بشدة وتسمح بقليل جداً بما يتجاوز النشر الأساسي.

بمجرد الإعداد، لن تطلب منك n8n إعادة المصادقة في كل مرة تستخدم فيها تلك العقد. ومع ذلك، تنتهي صلاحية التوكنات وتُحدّث من حين لآخر، لذا من الجدير بالاهتمام حفظ مفاتيح واسرار واجهة برمجة التطبيقات الخاصة بك في تطبيق إدارة كلمات المرور أو تطبيق الملاحظات الآمن، ستشكر نفسك لاحقاً.

النهج الأبسط هو السماح لـ n8n بإدارة تدفق OAuth لك من خلال واجهة البيانات الاعتمادية بدلاً من إنشاء وتخزين رموز الوصول يدويًا في ملفات .env.

النهج الموصى به (أفضل الممارسات)

للخدمات مثل Gmail و LinkedIn و Reddit و Slack و Notion و Google Drive وغيرها:

  1. انتقل إلى Credentials في n8n.
  2. أنشئ بيانات اعتماد جديدة للخدمة.
  3. أدخل معرف العميل وسر العميل المطلوبة (التي تم الحصول عليها من بوابة مطور الخدمة).
  4. انقر على Connect أو Sign In.
  5. أكمل تدفق التفويض عبر OAuth.

سيقوم n8n بـ:

  • تخزين رمز الوصول ورمز التحديث بشكل آمن.
  • تحديث الرموز المنتهية الصلاحية تلقائيًا عند الدعم.
  • إعادة استخدام نفس البيانات الاعتمادية عبر عمليات سير العمل المتعددة.

هذا هو الإعداد القياسي والأكثر قابلية للصيانة.


متى يتم استخدام متغيرات .env

استخدم متغيرات .env فقط لـ:

  • مفاتيح API
  • معرفات العميل
  • أسرار العميل
  • قيم التكوين المشتركة
  • إعدادات النشر الذاتي للخادم

مثال:


GOOGLE_CLIENT_ID=xxxxx
GOOGLE_CLIENT_SECRET=xxxxx
REDDIT_CLIENT_ID=xxxxx
REDDIT_CLIENT_SECRET=xxxxx

يمكنك بعد ذلك الإشارة إليها داخل بيانات اعتماد n8n باستخدام التعبيرات:


{{$env.GOOGLE_CLIENT_ID}}
{{$env.GOOGLE_CLIENT_SECRET}}

هذا يحافظ على الأسرار خارج الواجهة ويسهل الهجرة بين البيئات المختلفة.


للخدمات المتعددة

للأسف، لا توجد تكوينة “OAuth الرئيسية” موحدة تتعامل تلقائيًا مع Gmail و LinkedIn و Reddit وكل مزود آخر. تتطلب كل منصة:

  • تطبيق مطور خاص بها
  • معرف عميل خاص بها
  • سر عميل خاص بها
  • موافقة OAuth خاصة بها

الخبر السار هو أنك عادةً تقوم بتكوين كل خدمة مرة واحدة فقط، ثم تعيد استخدام تلك البيانات الاعتمادية عبر جميع عمليات سير العمل.


إذا كنت تستضيف بنفسك

إعداد الإنتاج الشائع هو:

  • تخزين معرفات العميل وأسرار العميل في .env أو مدير الأسرار.
  • إنشاء بيانات اعتماد في n8n تشير إلى متغيرات البيئة تلك.
  • السماح لـ n8n بالتعامل مع رموز OAuth الفعلية ودورات التحديث.

هذا يمنحك:

  • أمان أفضل
  • نسخ احتياطية أسهل
  • هجرة خادم أسهل
  • إدارة بيانات اعتماد مركزية

باختصار: استخدم واجهة بيانات اعتماد n8n لرموز OAuth والتفويض، وقم بتخزين معرفات العميل/الأسرار في .env بشكل اختياري إذا كنت تستضيف بنفسك وتريد إدارة أسرار أنظف. هذا هو النهج الذي يتبعه معظم مستخدمي n8n ذوي الخبرة.