พื้นที่เก็บข้อมูลนี้มีโค้ดแบ็กเอนด์ตัวอย่างที่สาธิตวิธีรวมการสร้าง Virgil และ Twilio JWT ซึ่งใช้สำหรับการตรวจสอบสิทธิ์กับบริการ Virgil และ Twilio
อย่าใช้การรับรองความถูกต้องนี้ในการผลิต การร้องขอไปยังตำแหน่งข้อมูล /virgil-jwt และ /twilio-jwt ต้องได้รับอนุญาตสำหรับผู้ใช้ที่ได้รับการรับรองความถูกต้อง ใช้กลยุทธ์การอนุญาตแอปพลิเคชันของคุณ
โคลนพื้นที่เก็บข้อมูลจาก GitHub
$ git clone https://github.com/VirgilSecurity/twilio-sample-backend-nodejs.git
หากคุณยังไม่มีบัญชี ให้สมัครใช้งานโดยใช้อีเมลของคุณ
.env
ในส่วน ไฟล์ .env.env
ในการสร้าง Virgil JWT จำเป็นต้องมีค่าต่อไปนี้:
ชื่อตัวแปร | คำอธิบาย |
---|---|
APP_ID | ID ของใบสมัคร Virgil ของคุณ |
APP_KEY | รหัสส่วนตัวของแอปของคุณที่ใช้ในการลงนาม JWT |
APP_KEY_ID | 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