Repositori ini berisi contoh kode backend yang menunjukkan cara menggabungkan generasi Virgil dan Twilio JWT, yang digunakan untuk otentikasi dengan layanan Virgil dan Twilio.
Jangan gunakan otentikasi ini dalam produksi. Permintaan ke titik akhir /virgil-jwt dan /twilio-jwt harus diizinkan untuk pengguna yang diautentikasi. Gunakan strategi otorisasi aplikasi Anda.
Kloning repositori dari GitHub.
$ git clone https://github.com/VirgilSecurity/twilio-sample-backend-nodejs.git
Jika Anda belum memiliki akun, daftarlah menggunakan email Anda.
.env
di bagian file .env ..env
. Untuk menghasilkan Virgil JWT nilai-nilai berikut diperlukan:
Nama Variabel | Keterangan |
---|---|
APP_ID | ID Aplikasi Virgil Anda. |
APP_KEY | Kunci pribadi Aplikasi Anda yang digunakan untuk menandatangani JWT. |
APP_KEY_ID | ID Kunci Aplikasi Anda. Nilai string unik yang mengidentifikasi akun Anda di Virgil Cloud. |
.env.example
menjadi .env
.APP_ID
-nya ke file .env
;APP_KEY
di file .env
;APP_KEY_ID
di file .env
;Untuk menghasilkan Twilio JWT nilai-nilai berikut diperlukan:
Nama Variabel | Keterangan |
---|---|
TWILIO_ACCOUNT_SID | Pengidentifikasi akun Twilio utama Anda - temukan ini di konsol di sini. |
TWILIO_API_KEY_SID | SID dari Kunci Twilio Api. Digunakan untuk otentikasi pada layanan Twilio. Dihasilkan dengan TWILIO_API_SECRET |
TWILIO_API_SECRET | Rahasia kunci Twilio API: buat satu di sini |
TWILIO_SERVICE_SID | Sebuah contoh layanan tempat semua data untuk aplikasi kita disimpan dan dicakup. Hasilkan satu di konsol di sini. |
Tambahkan parameter ini ke file .env
Anda.
$ npm install
$ npm run start
Sekarang, gunakan kode klien Anda untuk membuat permintaan untuk mendapatkan JWT dari sampel backend yang berfungsi di http://localhost:3000.
Bersamaan dengan backend kami menyediakan demonstrasi obrolan klien sederhana yang berinteraksi dengan Virgil API, yang dapat Anda lihat jika Anda menavigasi ke http://localhost:3000 di browser Anda. Contoh kode obrolan terletak di direktori public
.
Titik akhir ini adalah contoh autentikasi pengguna. Dibutuhkan identity
pengguna dan merespons dengan token unik.
POST https://localhost:3000/authenticate HTTP/1.1
Content-type: application/json;
{
"identity" : " string "
}
Response:
{
"authToken" : " string "
}
Titik akhir ini memeriksa apakah permintaan diautentikasi oleh header otorisasi. Dibutuhkan authToken
pengguna, menemukan identitas pengguna terkait dan menghasilkan virgilToken
(yang merupakan JSON Web Token) dengan identity
ini dalam payload. Gunakan token ini untuk melakukan panggilan API resmi ke Virgil Cloud.
GET https://localhost:3000/virgil-jwt HTTP/1.1
Content-type: application/json;
Authorization: Bearer <authToken>
Response:
{
"virgilToken" : " string "
}
Sama seperti titik akhir token Virgil, titik akhir Twilio harus dilindungi dan merespons dengan twilioToken
.
GET https://localhost:3000/twilio-jwt HTTP/1.1
Content-type: application/json;
Authorization: Bearer <authToken>
Response:
{
"twilioToken" : " string "
}
Untuk menghasilkan Virgil JWT, Anda perlu menggunakan kelas JwtGenerator
dari 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 )
} ) ;
Maka Anda perlu menyediakan titik akhir HTTP yang akan mengembalikan JWT dengan identitas pengguna sebagai JSON.
Untuk lebih jelasnya lihat file virgilToken.js.
Pustaka ini dirilis di bawah Lisensi BSD 3-klausul.
Tim dukungan pengembang kami siap membantu Anda. Temukan informasi lebih lanjut di Pusat Bantuan kami.
Anda dapat menemukan kami di Twitter atau kirimkan email kepada kami [email protected].
Dapatkan juga bantuan ekstra dari tim dukungan kami di Slack.