이 저장소에는 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 계정 식별자 - 여기 콘솔에서 찾아보세요. |
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 웹 토큰)을 생성합니다. 이 토큰을 사용하여 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 지원팀으로부터 추가 도움을 받아보세요.