このリポジトリには、Virgil サービスと Twilio サービスでの認証に使用される Virgil と Twilio の JWT 生成を組み合わせる方法を示すサンプル バックエンド コードが含まれています。
運用環境ではこの認証を使用しないでください。 /virgil-jwt および /twilio-jwt エンドポイントへのリクエストは、認証されたユーザーに許可する必要があります。アプリケーションの認可戦略を使用します。
GitHub からリポジトリのクローンを作成します。
$ git clone https://github.com/VirgilSecurity/twilio-sample-backend-nodejs.git
まだアカウントをお持ちでない場合は、電子メールを使用してサインアップしてください。
.env
を生成します。.env
に変更します。 Virgil JWT を生成するには、次の値が必要です。
変数名 | 説明 |
---|---|
APP_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 アカウント ID - ここのコンソールでこれを見つけます。 |
TWILIO_API_KEY_SID | Twilio API キーの SID。 Twilio サービスでの認証に使用されます。 TWILIO_API_SECRET で生成 |
TWILIO_API_SECRET | 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
を取得し、関連するユーザー ID を見つけて、ペイロード内のこの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 )
} ) ;
次に、ユーザーの ID を含む JWT を JSON として返す HTTP エンドポイントを提供する必要があります。
詳細については、virgilToken.js ファイルを参照してください。
このライブラリは、3 条項の BSD ライセンスに基づいてリリースされています。
弊社の開発者サポート チームがお手伝いいたします。詳細については、ヘルプセンターをご覧ください。
Twitter で当社を見つけるか、[email protected] に電子メールを送信してください。
また、Slack のサポート チームから追加のサポートも受けられます。