Twilio 서비스에 연결하는 것은 Twilio-PHP 라이브러리를 포함하고 Services_twilio 클래스의 새로운 인스턴스를 작성하는 것만 큼 간단합니다. 이 객체의 생성자는 서비스를 등록한 후 Twilio 계정의 대시 보드 페이지에 나열된 계정의 SID 및 인증 토큰을 수락합니다. 사용 가능한 Services_twilio 인스턴스를 사용하면 계정 속성을 통해 API에 액세스 할 수 있습니다. 계정은 Twilio 계정을 나타내는 services_twilio_rest_account의 인스턴스를 노출시킵니다. 여기서는 하나의 계정 만 사용하지만 여러 하위 계정을 가질 수 있습니다. 이것은 필요에 따라 상호 작용을 분해하는 데 유용 할 수 있습니다. Twilio 문서를 읽고 하위 계정에 대한 자세한 내용을 알아볼 수 있습니다.
<code class="language-php"><?php require "Services/Twilio.php";
define("TWILIO_SID", "…");
define("TWILIO_AUTH_TOKEN", "…");
$twilio = new Services_Twilio(TWILIO_SID, TWILIO_AUTH_TOKEN);
$acct = $twilio->account;</code>
계정 인스턴스는 전화 및 sms_messages를 포함한 여러 다른 속성을 노출시킵니다. 이들은 서비스 _twilio_rest_calls 및 services_twilio_rest_smsmessages와 같은 객체의 인스턴스입니다. 그러나 Create () 메소드 외부에서 이러한 객체를 거의 사용하지 않으며 문서는 "인스턴스 리소스"를 노출시키는 속성을 호출합니다. 나는 혼란을 피하기 위해 똑같은 일을 할 것입니다.
문자 메시지 보내기
SMS 메시지 보내기 SMS 메시지 인스턴스 리소스 ($ acct- & gt; sms_messages)의 create () 메소드를 통해 SMS 메시지 보내기가 수행됩니다. 이 메소드는 세 가지 매개 변수를 허용합니다. 계정의 황혼 번호 (이메일의 "발신자 주소"와 유사), 수신자 번호 ( "수신자 주소") 및 메시지 텍스트 (최대 160 자).
무대 뒤에서 Twilio-PHP 라이브러리는 귀하를 대신하여 Twilio API에 대한 게시물 요청을합니다. services_twilio_rest_smsmessage의 인스턴스는 메시지에 대한 정보를 캡슐화하는 통화로 반환됩니다. 문서에 제공되는 정보의 전체 목록을 볼 수 있지만, 더 중요한 값은 상태 및 가격 속성에 의해 노출 될 수 있습니다. 상태는 문자 메시지의 상태를 표시하며 (대기, 전송, 전송 또는 실패) 가격은 계정에 대해 청구 된 메시지 금액을 표시합니다.
음성 전화를 보내
음성 통화 시작은 호출 인스턴스 리소스 ($ acct- & gt; call)의 create () 메소드를 통해 수행됩니다. 문자 메시지를 보내는 것과 마찬가지로 계정 번호, 수신자 번호 및 메시지를 제공해야합니다. 그러나이 경우 메시지는 통화의 특성을 설명하는 TWIML 문서의 URL입니다.
<code class="language-php"><?php $code = "1234"; // some random auth code
$msg = $acct->sms_messages->create(
"+19585550199", // "from" number
"+19588675309", // "to" number
"Your access code is " . $code
);</code>
라이브러리는 다시 귀하를 대신하여 게시물 요청을하고 음성 전화를합니다. 호출 된 사람이 전화에 응답하면 Twilio의 프로세스는 콜백 URL의 XML에 제공된 명령을 검색하고 실행합니다. 위의 음성 통화를 시작하는 예에서 콜백 스크립트의 URL에 대한 get 매개 변수로 확인 코드를 전달했습니다. Twilio가 URL을 검색하면 PHP는 응답을 렌더링 할 때이 매개 변수를 사용합니다. 통화 흐름을 구축하려면 적은 수의 TWIML 태그 만 필요하지만 복잡한 프로세스 (예 : 전화 트리 메뉴 등)를 정의하는 데 사용할 수 있습니다. 그러나 이러한 시나리오의 기본 통화 흐름은 다음과 같이 PHP에 의해 생성 될 수 있습니다.
<code class="language-php"><?php require "Services/Twilio.php";
define("TWILIO_SID", "…");
define("TWILIO_AUTH_TOKEN", "…");
$twilio = new Services_Twilio(TWILIO_SID, TWILIO_AUTH_TOKEN);
$acct = $twilio->account;</code>
여기에 사용 된 TWIML 태그는 응답 (루트 요소), Say (Twilio가 말할 텍스트 제공) 및 수집 (사용자 입력 수집)입니다. Say Child 요소로 표시된 텍스트를 발언 할 때 Twilio는 5 초 동안 수집 및 일시 중지로 인해 사용자 입력을 듣고 사용자가 응답을 입력 할 수 있습니다. 입력없이 시간을 모은 경우, 후속 텍스트를 종료하고 실행하고 통화를 종료합니다. 그렇지 않으면 추가 처리를 위해 입력이 게시물을 통해 작업 URL로 다시 전송됩니다. Gather의 Twilio 문서화는 행동을 수정하는 데 사용할 수있는 행동과 요소 속성을 설명하는 데 매우 능숙하며 몇 가지 예를 나열합니다. 빨리 읽는 것이 좋습니다. 진행하기 전에 시작 스크립트의 인증 코드의 각 번호 사이에 공백이 추가되었습니다. 이로 인해 스피치 신디사이저는 "1 천 2 백 서른 4"대신 "1 개의 3 개의 4"라고 말하면서 하나의 발음을 강요합니다. 음성 합성의 경우 때로는 텍스트에서 우리가 보는 것이 항상 우리가 얻는 것이 아닙니다. Callee에 더 선명도와 이해를 가져 오면 발음 대화를 수정하거나 철자하는 것이 좋습니다.
다중 인증을 구현하십시오
이제 Twilio와 SMS와 음성 상호 작용을위한 기본 워크 플로우를 배웠으므로 이제 로그인 프로세스에 어떻게 적합한 지 확인할 차례입니다. 여기에서 보는 것은 매우 간단하고 간단하며 명확성을 위해 자신의 로그인 프로세스의 세부 사항이 다르기 때문에 동반 코드를 줄였습니다. 프로세스 시작을위한 로그인 양식을 사용자에게 표시해야합니다. 양식 제출으로 인해 자격 증명을 확인하고 유효하지 않은 자격 증명을 거부하지만 유효한 자격 증명은 사용자를 응용 프로그램에 즉시 인증해서는 안됩니다. 대신, 사용자를 "부분적으로 검증 된"것으로 취급하는데, 이는 요청 된 코드의 두 번째 형태를 볼 수있는 상태입니다. 사용자는 올바른 코드를 제출 한 후에 만 승인해야합니다.
위의 코드는 그림을위한 것입니다. 실제 응용 프로그램에서 다음을 추가하는 것을 고려할 수 있습니다.
확인 링크를 추가하여 확인 코드를 사용자의 전화로 재설정합니다. -
사용자가 프로세스를 계속하지 않기로 결정한 경우 코드 요청 양식에 링크되지 않음을 추가하십시오. 위의 코드와 관련하여, 값은 값이 사용자 이름을 저장하는 것 외에도 "부분 인증"플래그 역할을하기 때문에 이러한 링크는 이어야합니다.
-
잘못된 코드가 제공되면 스로틀 링 또는 계정 잠금을 추가하십시오.
$_SESSION["username"]
편집증 수준 또는 직면 한 규정 준수 요구 사항에 따라 인증 이벤트를 로그인하십시오. (다단계 인증이 필요한 앱은 일반적으로 감사 트레일이 필요할 정도로 민감합니다!)
$_SESSION["isAuthenticated"]
또한, 목적을 위해 충분한 복잡한 인증 코드를 작성하는 것을 고려할 수 있습니다. 4 자리 코드는 매우 일반적이지만 그에 국한되지는 않습니다. 문자 또는 영숫자 값의 혼합을 사용하기로 선택한 경우 혼란스러운 값 (예 : 문자 O가있는 번호 0, 문자 I의 숫자 1 등)을 피하는 것이 좋습니다.
요약 -
저렴한 모바일 장치 및 IP 전화의 인기는 사용자와 상호 작용하기 위해 다른 채널을 추가했으며,이 기사에서는 "Cloud Communications"서비스 인 "Cloud Communications"서비스 인 "Cloud Communications"서비스 Twilio를 사용하여 이러한 채널을 활용하는 방법을 배웁니다. 다중 인증 인증을 활성화하여 이러한 채널을 활용하려면. 이 기사가 다중 인 인증 및 Twilio를 이해하는 데 도움이되기를 바랍니다. 자신의 앱에서 Twilio를 사용하거나 다중 인증 인증을 구현하는 방법을 공유하려면 아래에 의견을 보내주십시오. 나는 당신의 생각을 듣고 싶습니다! -
(Fotolia의 그림)
PHP 및 Twilio를 사용한 다중 인증에 대한 FAQS (FAQS)
다중 요소 인증을 위해 PHP와 Twilio를 사용하는 것이 얼마나 안전합니까?
MFA (Multifactor Authentication)는 PHP 및 Twilio에서 매우 안전합니다. 사용자가 계정에 액세스하기 전에 최소한 두 가지 인증 방법을 제공하도록함으로써 추가 보안 계층을 추가합니다. 첫 번째 양식은 일반적으로 비밀번호이며 두 번째 양식은 문자 메시지를 통해 사용자의 전화로 전송 된 코드 일 수 있습니다. 비밀번호가 있더라도 무단 사용자가 계정에 액세스하기가 더 어려워집니다.
인증 프로세스를 사용자 정의 할 수 있습니까?
예, 귀하의 요구에 맞게 인증 프로세스를 사용자 정의 할 수 있습니다. Twilio의 API는 매우 유연하며 인증 프로세스를 특정 요구 사항으로 조정할 수 있습니다. 두 번째 요소 (예 : 문자 메시지, 음성 통화 또는 이메일), 메시지 내용 등을 선택할 수 있습니다.
Twilio는 인증 코드를 보내는 것이 얼마나 신뢰할 수 있습니까?
Twilio는 인증 코드를 전송하기위한 신뢰할 수있는 플랫폼입니다. 강력한 인프라가 있으며 높은 배송 속도를 제공합니다. 또한 실시간 전달 보고서를 제공하므로 메시지 상태를 추적 할 수 있습니다.
- 사용자가 전화를 잃으면 어떻게됩니까?
사용자가 전화를 잃는 경우 대체 코드를 사용하여 여전히 계정에 액세스 할 수 있습니다. 이 코드는 MFA를 설정할 때 생성되며 안전한 장소에 저장해야합니다. 사용자는 전화로 전송 된 코드 대신 이러한 코드를 입력 할 수 있습니다.
대형 응용 프로그램에는 PHP 및 Twilio와 함께 MFA를 사용할 수 있습니까?
예, 대규모 응용 프로그램에는 PHP 및 Twilio와 함께 MFA를 사용할 수 있습니다. Twilio의 인프라는 많은 양의 메시지를 처리하도록 설계되어 많은 사용자와 함께 응용 프로그램에 적합합니다. -
MFA 구현을 테스트하는 방법은 무엇입니까?
테스트 계정을 작성하고 인증 프로세스를 완료하여 MFA 구현을 테스트 할 수 있습니다. Twilio는 또한 실제 메시지를 보내지 않고도 코드를 테스트 할 수있는 샌드 박스 환경을 제공합니다.
인코딩없이 MFA를 구현할 수 있습니까? -
일부 MFA 솔루션은 비 코딩에 사용될 수 있지만 PHP를 사용하여 MFA를 구현하려면 일부 코딩 지식이 필요합니다. 그러나 프로세스는 간단하고 도움이되는 많은 리소스가 있습니다.
MFA에 Twilio를 사용하는 데 비용이 얼마나 드나요?
MFA에 Twilio를 사용하는 비용은 보내는 메시지 수에 따라 다릅니다. Twilio는 메시지로 청구되므로 메시지가 더 많을수록 수수료가 높아집니다. 그러나 Twilio는 경쟁력있는 가격과 배치 할인을 제공합니다.
-
WEB가 아닌 응용 프로그램에는 PHP 및 Twilio와 함께 MFA를 사용할 수 있습니까?
예, 비 WEB 응용 프로그램에는 PHP 및 Twilio와 함께 MFA를 사용할 수 있습니다. HTTP 요청을 보내고 HTTP 응답을 처리 할 수있는 모든 응용 프로그램에서 MFA를 구현할 수 있습니다.
Twilio는 어떤 다른 서비스를 제공합니까?
MFA 외에도 Twilio는 MFA 외에도 음성, 비디오, 채팅 및 이메일을 포함한 다양한 커뮤니케이션 서비스를 제공합니다. 이러한 서비스는 고객 서비스 시스템에서 마케팅 자동화 도구에 이르기까지 다양한 응용 프로그램을 구축하는 데 사용될 수 있습니다. -