مكون إضافة تسجيل الدخول باستخدام Ethereum

|||
-|-|-|
:information_source: | ملخص | تمكين تسجيل الدخول باستخدام Ethereum على Discourse
:hammer_and_wrench::sob: - | المستودع الأصلي | GitHub - spruceid/discourse-siwe-auth: Discourse plugin for SIWE authentication
:hammer_and_wrench: :white_check_mark: | المستودع العامل | GitHub - communiteq/discourse-siwe-auth: Discourse plugin for SIWE authentication
:open_book: | دليل التثبيت | كيفية تثبيت الإضافات في Discourse

الميزات

تتيح هذه الإضافة تسجيل الدخول باستخدام Ethereum على Discourse

الإعداد

المتطلبات

  • منتدى Discourse مستضاف ذاتيًا أو مستضاف لدى مزود يسمح بالإضافات الخارجية، مثل Communiteq.

ملاحظة

لا تزال إضافة Sign-In with Ethereum تتطلب من المستخدمين إدخال بريد إلكتروني لربطه بحساباتهم بعد المصادقة لأول مرة. إذا كان المستخدم يمتلك عنوان ENS، فسيكون اسم المستخدم المحدد افتراضيًا. بمجرد ربط عنوان بريد إلكتروني، يمكن للمستخدمين بعد ذلك تسجيل الدخول باستخدام خيار SIWE في أي وقت.

تمكين الإضافة

لتثبيت وتمكين الإضافة على Discourse المستضاف ذاتيًا، استخدم الطريقة التالية: قم بالوصول إلى ملف app.yml الخاص بالحاوية (الموجود في /var/discourse/)

cd /var/discourse
nano containers/app.yml

أضف عنوان URL لمستودع الإضافة إلى ملف app.yml الخاص بالحاوية:

hooks:
  before_code:                             # -- تم الإضافة
    - exec:                                # -- تم الإضافة
        cmd:                               # -- تم الإضافة
          - gem install rubyzip            # -- تم الإضافة
  after_code:
    - exec:
      cd: $home/plugins
      cmd:
        - sudo -E -u discourse git clone https://github.com/discourse/docker_manager.git
        - sudo -E -u discourse git clone https://github.com/spruceid/discourse-siwe-auth.git   # -- تم الإضافة

اتبع التنسيق الحالي لسطر docker_manager.git؛ إذا لم يكن يحتوي على sudo -E -u discourse، فقم بإدراج - git clone https://github.com/spruceid/discourse-siwe-auth.git.

أعد بناء الحاوية:

cd /var/discourse
./launcher rebuild app

لتعطيلها، إما قم بإزالة الإضافة أو قم بإلغاء تحديد discourse siwe enabled في (Admin Settings → Plugins → discourse-siwe → discourse siwe enabled).

Discourse Plugins Enable plugin at settings

تمكين WalletConnect

يمكن توفير دعم WalletConnect عبر Infura. قم بإنشاء مشروع Infura جديد لتلقي معرف مشروع Infura جديد. ثم انتقل إلى الإعدادات (نفس ما سبق) والصق المعرف في هذا الموقع وانقر على علامة الصح. Add infura id to plugin settings

JSON RPC

بدلاً من ذلك، يمكنك تكوين مثيل WalletConnect باستخدام نقاط نهاية JSON RPC، كما هو موضح أدناه:

سيؤدي القيام بذلك إلى تجاوز خيار تكوين معرف Infura لـ WalletConnect تحديدًا، ولن تتأثر الاستخدامات الأخرى لمعرف Infura.

Add JSON RPC endpoints

تعديل بيان الرسالة

بشكل افتراضي، تتم إضافة بيان إلى الرسائل: Sign-in to Discourse via Ethereum. لتعديل هذا البيان، قم بالوصول إلى الإعدادات (نفس ما سبق) وقم بتحديثها. Add infura id to plugin settings

14 إعجابًا

بعض المناقشة حول التبعيات هنا Discourse can't find gems specified in the plugin

تم العثور على هذا على GitHub، ويبدو أنه قيد التطوير بنشاط أيضًا. يبدو أنه يسمح بتسجيل الدخول إلى web3 (لا يزال يتطلب عناوين البريد الإلكتروني بعد تسجيل الدخول باستخدام محفظتك).\n\nhttps://github.com/spruceid/discourse-siwe-auth\n\nومع ذلك، يواجه المطور مشكلة تمنع تثبيت المكون الإضافي وتمهيد Discourse بعد ذلك. التفاصيل الكاملة في المشكلة أدناه. ربما تكون مشكلة بسيطة جدًا ويمكن لشخص ما هنا تقديم طلب سحب (PR) للمطور.\n\nCannot Install Plugin on Self-Hosted Discourse server - rbsecp256k1 · Issue #15 · spruceid/discourse-siwe-auth · GitHub

إعجاب واحد (1)

امسك بيرة :wink:
الحل في مشكلة جيت هاب.

3 إعجابات

هذا رائع، سأجربه الآن. آمل أن يساعد هذا المطور أيضًا :grinning_face:

تحرير: انتهى بي الأمر بنفس الخطأ على ما يبدو على الرغم من أنه يبدو أن الجوهرة يتم تثبيتها:

version 2.3.0.
Successfully installed rubyzip-2.3.2
1 gem installed
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 777 exit 1>
Location of failure: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.

هل يمكنك فعل ذلك من فضلك؟

إعجابَين (2)

بالمرور عبر السجلات، أنشر أشياء أعتقد أنها قد تكون ذات صلة.

@moderators ربما تقسيم موضوع لهذا؟ لا يوجد موضوع رسمي لهذه الإضافة، لا أعتقد أن المطور موجود في ميتا.

I, [2022-07-04T16:43:46.394301 #1]  INFO -- : cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate'
rake aborted!
Gem::ConflictError: Unable to activate eth-0.5.1, because openssl-3.0.0 conflicts with openssl (~> 2.2)

لا أرى أي أخطاء أخرى في هذه اللحظة (أو أنني أفوتها، السجلات طويلة)

إعجاب واحد (1)

بصراحة، أنا لا أتابع جوهر ما يحدث هنا. :slightly_smiling_face: @RGJ و @michaeld لديهما القدرة على الانقسام، لذا ربما سيقومان بالتشريف وإدارته بطريقة أكثر حساسية مما سأفعل. :slightly_smiling_face::crossed_fingers: (أو، بدلاً من ذلك، اختر المنشور الذي تريد الانقسام منه، وقم بتسمية الفئة التي تريد نقله إليها، وأخبرني بالعنوان الذي يجب أن أمنحه إياه :+1:)

إعجاب واحد (1)

اقتراحي هو تقسيمه من هنا:

https://meta.discourse.org/t/web-3-0-features/203321/19?u=marcp

الفئة الأنسب ستكون Support أو #plugins (لست متأكدًا.. كيف نتعامل مع الإضافات التي لم يطورها عضو في Meta.. ربما سينضم إلى Meta أو يمكننا دعوته عبر Github إلى Meta يومًا ما؟)

تحرير:

يبدو أن هذا هو المطور، لذا فهو على Meta؟ @w4ll3

@michaeld made a PR for this yesterday, but it’s not merged yet. You can use GitHub - communiteq/discourse-siwe-auth: Discourse plugin for SIWE authentication in the meanwhile.

3 إعجابات

يمكنني تأكيد أن هذا يعمل! شكراً مايكل.

إعجاب واحد (1)

لتلخيص الأمر، تحتاج إلى كل من before_code كما هو موضح في المشكلة Cannot Install Plugin on Self-Hosted Discourse server - rbsecp256k1 · Issue #15 · spruceid/discourse-siwe-auth · GitHub وإلى الإصدار الأحدث من gem eth الذي قمت بإنشاء طلب السحب (غير المدمج حاليًا) له.

5 إعجابات

في وقت متأخر بعض الشيء هنا في المنتدى الرسمي، ولكن مرحبًا - روكو من فريق Spruce.

شكرًا مرة أخرى @michaeld على الإصلاحات هناك، فقد عالجت الأمر وقمنا بتحديث الوثائق من جانبنا. شكرًا أيضًا على طرح كل هذا - ما زلنا نعمل بنشاط على تطوير / صيانة الأشياء المتعلقة بتسجيل الدخول باستخدام Ethereum.

كنت فضوليًا أيضًا هنا - هل هناك مسار لجعل هذا مكونًا إضافيًا مدعومًا رسميًا في النهاية :grinning: - نحن نحب Discourse ونريد معرفة كيفية توسيع هذه الوظيفة إلى مثيلات غير مستضافة ذاتيًا.

إعجابَين (2)

للتوضيح فقط، يدعم Communiteq هذه الإضافة على خطط الاستضافة المُدارة لدينا، وهي متاحة في الخطة الاحترافية وما فوقها.

3 إعجابات

اعتذاري عن ذلك!

لا داعي للاعتذار! الاستضافة الرسمية لا تحتوي عليها (حتى الآن؟). أردت فقط التأكيد على التزامنا بهذه الإضافات الخاصة بـ web3.

3 إعجابات

نعم - للأسف، إنه ليس مكونًا إضافيًا مدعومًا رسميًا.

ولكن بالتأكيد تحية لـ Communiteq على الدعم! أي شيء للمساعدة في دعم مستخدمي Web3 هو أمر رائع حقًا.

من جانبنا، نعمل على طرق مختلفة لدعم اعتماد Sign-In with Ethereum وكان Discourse دائمًا على رأس قائمتنا، ولهذا السبب بعد أن قمنا بتوحيده EIP-4361 أنشأنا المكون الإضافي. الشيء الآخر الذي كان في مقدمة اهتماماتنا هو حول ما يمكن إضافته إليه - مع توفير RPC المخصص كأحد الأجزاء الأولى.

3 إعجابات

هذه الإضافة لا تعمل معي، هناك مشكلة ما في الإضافة ولا يمكنني تثبيتها، هل يمكن لأحد مشاركة بديل أو المساعدة في هذه الإضافة @michaeld @RGJ

ستحتاج إلى مشاركة التفاصيل إذا كنت تريد المساعدة.

إعجاب واحد (1)

@RGJ عند محاولة تثبيت هذه الإضافة، يفشل إعادة البناء بهذا الخطأ:

أنت تحدد الجوهرة rbsecp256k1 في /var/www/discourse/plugins/discourse-siwe-auth/plugin.rb، ولكنها غير موجودة!
تم البحث عن: /var/www/discourse/plugins/discourse-siwe-auth/gems/2.7.6/specifications/rbsecp256k1-5.1.0.gemspec