يحتوي هذا المستودع على نموذج للتعليمات البرمجية الخلفية التي توضح كيفية الجمع بين توليد Virgil وTwilio JWT، والتي يتم استخدامها للمصادقة مع خدمات Virgil وTwilio.
لا تستخدم هذه المصادقة في الإنتاج. يجب السماح بالطلبات المقدمة إلى نقطتي النهاية /virgil-jwt و/twilio-jwt للمستخدمين المصادق عليهم. استخدم استراتيجية ترخيص التطبيق الخاص بك.
استنساخ المستودع من جيثب.
$ git clone https://github.com/VirgilSecurity/twilio-sample-backend-nodejs.git
إذا لم يكن لديك حساب بعد، قم بالتسجيل للحصول على واحد باستخدام البريد الإلكتروني الخاص بك.
.env
في قسم ملف .env ..env
. لإنشاء Virgil JWT، القيم التالية مطلوبة:
اسم متغير | وصف |
---|---|
APP_ID | معرف تطبيق فيرجيل الخاص بك. |
APP_KEY | المفتاح الخاص لتطبيقك المستخدم لتوقيع JWTs. |
APP_KEY_ID | معرف مفتاح التطبيق الخاص بك. قيمة سلسلة فريدة تحدد حسابك في Virgil Cloud. |
.env.example
إلى .env
.APP_ID
الخاص به إلى ملف .env
؛APP_KEY
في ملف .env
؛APP_KEY_ID
في ملف .env
؛لإنشاء Twilio JWT، تكون القيم التالية مطلوبة:
اسم متغير | وصف |
---|---|
TWILIO_ACCOUNT_SID | معرف حساب Twilio الأساسي الخاص بك - ابحث عنه في وحدة التحكم هنا. |
TWILIO_API_KEY_SID | SID لمفتاح Twilio Api. يستخدم للمصادقة على خدمات Twilio. تم إنشاؤها باستخدام TWILIO_API_SECRET |
TWILIO_API_SECRET | سر مفتاح Twilio API: قم بإنشاء واحد هنا |
TWILIO_SERVICE_SID | مثيل خدمة حيث يتم تخزين جميع البيانات الخاصة بتطبيقنا وتحديد نطاقها. قم بإنشاء واحد في وحدة التحكم هنا. |
أضف هذه المعلمات إلى ملف .env
الخاص بك.
$ npm install
$ npm run start
الآن، استخدم رمز العميل الخاص بك لتقديم طلب للحصول على JWT من نموذج الواجهة الخلفية الذي يعمل على http://localhost:3000.
إلى جانب الواجهة الخلفية، نقدم عرضًا توضيحيًا لدردشة عميل بسيطة تتفاعل مع Virgil API، والتي يمكنك رؤيتها إذا انتقلت إلى http://localhost:3000 في متصفحك. يوجد نموذج رمز الدردشة في الدليل public
.
تعتبر نقطة النهاية هذه مثالاً على مصادقة المستخدمين. يأخذ identity
المستخدم ويستجيب برمز فريد.
POST https://localhost:3000/authenticate HTTP/1.1
Content-type: application/json;
{
"identity" : " string "
}
Response:
{
"authToken" : " string "
}
تتحقق نقطة النهاية هذه مما إذا كان الطلب قد تمت مصادقته بواسطة رأس التفويض. فهو يأخذ authToken
الخاص بالمستخدم، ويبحث عن هوية المستخدم ذات الصلة وينشئ virgilToken
(وهو JSON Web Token) بهذه identity
في حمولة. استخدم هذا الرمز المميز لإجراء مكالمات API معتمدة إلى Virgil Cloud.
GET https://localhost:3000/virgil-jwt HTTP/1.1
Content-type: application/json;
Authorization: Bearer <authToken>
Response:
{
"virgilToken" : " string "
}
تمامًا مثل نقطة نهاية الرمز المميز لـ Virgil، يجب حماية نقطة نهاية Twilio والاستجابة باستخدام twilioToken
.
GET https://localhost:3000/twilio-jwt HTTP/1.1
Content-type: application/json;
Authorization: Bearer <authToken>
Response:
{
"twilioToken" : " string "
}
لإنشاء Virgil JWT، تحتاج إلى استخدام فئة JwtGenerator
من Virgil SDK.
const virgilCrypto = new VirgilCrypto ( ) ;
const generator = new JwtGenerator ( {
appId : process . env . APP_ID ,
apiKeyId : process . env . API_KEY_ID ,
apiKey : virgilCrypto . importPrivateKey ( process . env . API_PRIVATE_KEY ) ,
accessTokenSigner : new VirgilAccessTokenSigner ( virgilCrypto )
} ) ;
ثم تحتاج إلى توفير نقطة نهاية HTTP والتي ستعيد JWT مع هوية المستخدم كـ JSON.
لمزيد من التفاصيل قم بإلقاء نظرة على ملف virgilToken.js.
تم إصدار هذه المكتبة بموجب ترخيص BSD المكون من 3 فقرات.
فريق دعم المطورين لدينا موجود لمساعدتك. اكتشف المزيد من المعلومات في مركز المساعدة الخاص بنا.
يمكنك العثور علينا على Twitter أو إرسال بريد إلكتروني إلينا على [email protected].
احصل أيضًا على مساعدة إضافية من فريق الدعم لدينا على Slack.