Google Authenticator는 Google에서 시작한 2 단계 인증 도구로, 일회성 검증 코드 (OTP)를 생성하여 계정에 대한 추가 보안 계층을 제공합니다. 로그인 할 때 사용자는 사용자 이름과 비밀번호를 입력해야 할뿐만 아니라 모바일 장치에서 생성 된 동적 인 확인 코드를 입력하여 계정 도난의 위험을 효과적으로 줄여야합니다.
이 시간 기반의 일회성 비밀번호 (TOTP) 메커니즘은 고정 시간 간격 내에서 확인 코드를 자동으로 새로 고치므로 검증 코드를 훔치더라도 공격자가 재사용하기가 어렵습니다.
PHP에서 Google Authenticator 기반 인증 기능을 구현하려면 해당 타사 라이브러리에 의존해야합니다. 다음은 특정 구현 단계입니다.
먼저 Composer를 통해 Google Authenticator 관련 종속성을 설치하십시오. 프로젝트의 Composer.json 파일에 다음 내용을 추가하고 설치 명령을 실행하십시오.
"require": {
"google/authenticator": "^1.0"
}
설치가 완료되면 라이브러리를 사용하기 위해 코드에 도입 할 수 있습니다.
각 사용자마다 고유 키를 생성하는 것이 2 단계 인증을 달성하는 열쇠입니다. 라이브러리의 방법은 다음과 같이 사용할 수 있습니다.
use Google\Authenticator\GoogleAuthenticator;
$ga = new GoogleAuthenticator();
$secret = $ga->generateSecret();
위의 코드는 GeneratesEcret () 메소드를 통해 보안 키를 생성하며, 향후 일회성 검증 코드를 생성하고 확인하는 데 사용됩니다.
사용자가 키를 휴대 전화에 바인딩하도록 촉진하기 위해 QR 코드 링크를 생성 할 수 있으며 사용자는 Google Authenticator를 통해 바인딩을 스캔 할 수 있습니다.
$qrCodeUrl = $ga->getQRCodeUrl('My Website', $secret);
생성 된 URL은 QR 코드 생성 도구에 사용할 수 있으며, 사용자가 코드를 바인딩 할 코드를 스캔 할 수 있도록 웹 페이지에 표시됩니다. 첫 번째 매개 변수는 응용 프로그램 이름이고 두 번째 매개 변수는 사용자 키입니다.
사용자가 로그인하거나 민감한 작업을 수행하면 입력 한 확인 코드가 유효한지 확인해야합니다.
$isValid = $ga->checkCode($secret, $userInputCode);
if ($isValid) {
// 확인이 성공적입니다,액세스 허용
} else {
// 확인이 실패했습니다,접근 불가
}
사용자 키와 입력 된 확인 코드를 CheckCode () 메소드로 전달하여 확인을 완료하십시오. 확인이 전달되면 true를 반환합니다. 그렇지 않으면 False를 반환하십시오.
Integrated Google Authenticator는 PHP 응용 프로그램에 효과적인 2 단계 인증 메커니즘을 제공합니다. 사용자를위한 고유 키를 생성하고 QR 코드 바인딩을 표시하고 동적 인 검증 코드를 확인하면 계정의 보안이 크게 향상 될 수 있습니다. 이 방법은 간단하고 신뢰할 수 있으며 개선 된 로그인 보안이 필요한 다양한 PHP 프로젝트에 적합합니다.