SIWE(تسجيل الدخول باستخدام Ethereum) هي وسيلة للتحقق من هوية المستخدم على Ethereum، تشبه معاملات بدء المحفظة، تثبت سيطرة المستخدم على المحفظة. في الوقت الحالي، أصبح التحقق من الهوية سهلًا للغاية، يكفي فقط توقيع المعلومات في مكون المحفظة، وقد دعمت معظم مكونات المحفظة الشائعة ذلك. تناقش هذه المقالة بشكل أساسي سيناريوهات التوقيع على Ethereum.
هل تحتاج إلى SIWE
إذا كانت لديك المتطلبات التالية لـ Dapp الخاص بك، يمكنك التفكير في استخدام SIWE:
لديه نظام مستخدمين خاص به
تحتاج إلى استعلام عن المعلومات المتعلقة بخصوصية المستخدم
ولكن إذا كانت Dapp الخاصة بك تعتمد بشكل أساسي على وظيفة الاستعلام، مثل التطبيقات الشبيهة بـ etherscan، فلا يتعين عليك بالضرورة استخدام SIWE.
قد تتساءل، بعد الاتصال بالمحفظة على Dapp، أليس ذلك دليلاً على ملكية المحفظة؟ هذا صحيح فقط بالنسبة للواجهة الأمامية. بالنسبة لاستدعاءات واجهة برمجة التطبيقات التي تحتاج إلى دعم خلفي، فإن تمرير العنوان فقط غير كافٍ، لأن العنوان هو معلومات عامة، يمكن لأي شخص "استعارة" هويتك.
مبدأ SIWE والعملية
يمكن تلخيص عملية SIWE في ثلاث خطوات: الاتصال بالمحفظة - التوقيع - الحصول على هوية.
ربط المحفظة
هذا هو عملية شائعة في Web3، حيث يتم الاتصال بالمحفظة في Dapp من خلال ملحق المحفظة.
توقيع
تشمل خطوات التوقيع الحصول على قيمة Nonce، توقيع المحفظة والتحقق من توقيع الخلفية.
تقوم الخلفية بإنشاء قيمة عشوائية من نوع Nonce وترتبط بالعنوان. بعد أن يحصل الواجهة الأمامية على قيمة Nonce، تقوم بإنشاء محتوى التوقيع، بما في ذلك قيمة Nonce، واسم المجال، ومعرف السلسلة، وما إلى ذلك، باستخدام الطريقة التي توفرها المحفظة للتوقيع. وأخيرًا، يتم إرسال التوقيع إلى الخلفية.
الحصول على هوية
بعد التحقق من صحة توقيع الخلفية، يتم إرجاع هوية المستخدم ( مثل JWT ). يجب أن تتضمن الطلبات اللاحقة من الواجهة الأمامية العنوان وهوية المستخدم، مما يثبت ملكية المحفظة.
ممارسة SIWE
سوف نستخدم Next.js لتطوير عرض تجريبي بسيط لـ SIWE، لعرض العملية الأساسية. ملاحظة، هذا العرض التجريبي يستخدم فقط للتعريف، وقد توجد مشاكل أمنية عند استخدامه في بيئة الإنتاج.
تحسين: استخدام خدمات العقد المتخصصة لتحسين سرعة الاستجابة
من خلال الخطوات السابقة، قمنا بإنشاء إطار عمل أساسي لتسجيل الدخول SIWE. يمكن أن يؤدي استخدام خدمات العقد الاحترافية إلى زيادة كبيرة في سرعة التحقق، لذا يوصى باستخدامها في بيئة الإنتاج.
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
SIWE العملية: ثلاث خطوات لإنشاء نظام التحقق من الهوية بإثيريوم
دليل استخدام SIWE: اجعل تطبيقك اللامركزي أقوى
SIWE(تسجيل الدخول باستخدام Ethereum) هي وسيلة للتحقق من هوية المستخدم على Ethereum، تشبه معاملات بدء المحفظة، تثبت سيطرة المستخدم على المحفظة. في الوقت الحالي، أصبح التحقق من الهوية سهلًا للغاية، يكفي فقط توقيع المعلومات في مكون المحفظة، وقد دعمت معظم مكونات المحفظة الشائعة ذلك. تناقش هذه المقالة بشكل أساسي سيناريوهات التوقيع على Ethereum.
هل تحتاج إلى SIWE
إذا كانت لديك المتطلبات التالية لـ Dapp الخاص بك، يمكنك التفكير في استخدام SIWE:
ولكن إذا كانت Dapp الخاصة بك تعتمد بشكل أساسي على وظيفة الاستعلام، مثل التطبيقات الشبيهة بـ etherscan، فلا يتعين عليك بالضرورة استخدام SIWE.
قد تتساءل، بعد الاتصال بالمحفظة على Dapp، أليس ذلك دليلاً على ملكية المحفظة؟ هذا صحيح فقط بالنسبة للواجهة الأمامية. بالنسبة لاستدعاءات واجهة برمجة التطبيقات التي تحتاج إلى دعم خلفي، فإن تمرير العنوان فقط غير كافٍ، لأن العنوان هو معلومات عامة، يمكن لأي شخص "استعارة" هويتك.
مبدأ SIWE والعملية
يمكن تلخيص عملية SIWE في ثلاث خطوات: الاتصال بالمحفظة - التوقيع - الحصول على هوية.
ربط المحفظة
هذا هو عملية شائعة في Web3، حيث يتم الاتصال بالمحفظة في Dapp من خلال ملحق المحفظة.
توقيع
تشمل خطوات التوقيع الحصول على قيمة Nonce، توقيع المحفظة والتحقق من توقيع الخلفية.
تقوم الخلفية بإنشاء قيمة عشوائية من نوع Nonce وترتبط بالعنوان. بعد أن يحصل الواجهة الأمامية على قيمة Nonce، تقوم بإنشاء محتوى التوقيع، بما في ذلك قيمة Nonce، واسم المجال، ومعرف السلسلة، وما إلى ذلك، باستخدام الطريقة التي توفرها المحفظة للتوقيع. وأخيرًا، يتم إرسال التوقيع إلى الخلفية.
الحصول على هوية
بعد التحقق من صحة توقيع الخلفية، يتم إرجاع هوية المستخدم ( مثل JWT ). يجب أن تتضمن الطلبات اللاحقة من الواجهة الأمامية العنوان وهوية المستخدم، مما يثبت ملكية المحفظة.
ممارسة SIWE
سوف نستخدم Next.js لتطوير عرض تجريبي بسيط لـ SIWE، لعرض العملية الأساسية. ملاحظة، هذا العرض التجريبي يستخدم فقط للتعريف، وقد توجد مشاكل أمنية عند استخدامه في بيئة الإنتاج.
العمل التحضيري
npx create-next-app@14
npm تثبيت antd @ant-design/web3 @ant-design/web3-wagmi wagmi viem @tanstack/react-query --save
تنفيذ زر اتصال المحفظة
تنفيذ واجهة الخلفية
تحسين: استخدام خدمات العقد المتخصصة لتحسين سرعة الاستجابة
من خلال الخطوات السابقة، قمنا بإنشاء إطار عمل أساسي لتسجيل الدخول SIWE. يمكن أن يؤدي استخدام خدمات العقد الاحترافية إلى زيادة كبيرة في سرعة التحقق، لذا يوصى باستخدامها في بيئة الإنتاج.