此儲存庫包含一個範例後端程式碼,示範如何組合 Virgil 和 Twilio JWT 生成,這些程式碼用於透過 Virgil 和 Twilio 服務進行身份驗證。
不要在生產中使用此身份驗證。必須允許經過身份驗證的使用者向 /virgil-jwt 和 /twilio-jwt 端點發出請求。使用您的應用程式授權策略。
從 GitHub 克隆儲存庫。
$ git clone https://github.com/VirgilSecurity/twilio-sample-backend-nodejs.git
如果您還沒有帳戶,請使用您的電子郵件註冊帳戶。
.env
。.env
。 要產生 Virgil JWT,需要以下值:
變數名 | 描述 |
---|---|
應用程式ID | 您的 Virgil 應用程式的 ID。 |
APP_KEY | 用於簽署 JWT 的應用程式的私鑰。 |
APP_KEY_ID | 您的應用程式金鑰的 ID。一個唯一的字串值,用於識別您在 Virgil Cloud 中的帳戶。 |
.env.example
並將其重命名為.env
。APP_ID
複製到.env
檔案中;.env
檔案中的APP_KEY
行;.env
檔案中的APP_KEY_ID
行;要產生 Twilio JWT,需要以下值:
變數名 | 描述 |
---|---|
TWILIO_ACCOUNT_SID | 您的主要 Twilio 帳戶識別碼 - 在此處的控制台中找到它。 |
TWILIO_API_KEY_SID | Twilio Api 密鑰的 SID。用於 Twilio 服務上的身份驗證。使用 TWILIO_API_SECRET 生成 |
TWILIO_API_秘密 | Twilio API 金鑰秘密:在此產生一個 |
TWILIO_SERVICE_SID | 一個服務實例,其中儲存了應用程式的所有資料並確定了範圍。在此處的控制台中產生一個。 |
將此參數新增至您的.env
檔案。
$ npm install
$ npm run start
現在,使用客戶端程式碼發出請求,從在 http://localhost:3000 上執行的範例後端取得 JWT。
除了後端之外,我們還提供了與 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
,尋找相關的使用者身份,並在有效負載中產生一個包含此identity
的virgilToken
(JSON Web 令牌)。使用此令牌對 Virgil Cloud 進行授權 API 呼叫。
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,您需要使用 Virgil SDK 中的JwtGenerator
類別。
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 端點,該端點將以 JSON 形式傳回帶有使用者身分的 JWT。
有關更多詳細信息,請查看 virgilToken.js 文件。
該庫是根據 3 條款 BSD 許可證發布的。
我們的開發人員支援團隊隨時為您提供協助。在我們的幫助中心了解更多。
您可以在 Twitter 上找到我們或向我們發送電子郵件 [email protected]。
此外,還可從我們的 Slack 支援團隊獲得額外協助。