Kết nối và xử lý các dịch vụ của Google

Tích hợp reCAPTCHA, Authenticator, đăng nhập sử dụng tài khoản Google...

Khai báo thư viện

$soc->use_google();

Hoặc:

$soc->use_gg();

reCAPTCHA

Ở giao diện, thêm các đoạn code CSS, HTML và JS vào các vị trí phù hợp:

Khi submit form, sử dụng hàm sau để kiểm tra xem người dùng đã nhập đúng reCAPTCHA hay chưa:

bool $soc->gg->reCaptchaValid($secret_key, $min_score);
  • $site_key (truyền vào trong đoạn code JS): Mã site phát sinh từ Google reCAPTCHA.
  • $secret_key: Mã bí mật phát sinh từ Google reCAPTCHA đối ứng với $site_key.
  • $min_score: Truyền vào giá trị từ 0.1 đến 0.9, giá trị cang cao thì quy định về yếu tốt "con người" càng chặt chẽ.

Authenticator

// Tạo mã bảo mật ngẫu nhiên  $secret = $soc->gg->createAuthenticatorSecret();    // Link đến mã QR Code để người dùng scan qua ứng dụng Google Authenticator  $qrcode_url = $soc->gg->getAuthenticatorQRCode('socjsc.com', $secret);    // Kiểm tra xem code người dùng nhập vào đúng chưa ($oneCode truyền vào code do người dùng nhập, $x30s không truyền thì mang giá trị 2 tức 2x30s = 60s là số giây có hiệu lực của code)  if($soc->gg->verifyAuthenticatorOneCode($secret, $oneCode, $x30s=2)){     echo 'Bạn đã nhập đúng code 2FA';  }else{     echo 'Sai code 2FA';  }

Lưu ý:

  • Mã ngẫu nhiên ($secret) luôn khác nhau mỗi lần gọi, lưu lại mã này ứng với từng người dùng.
  • Ở lần scan QR code đầu tiên, nên yêu cầu người dùng nhập vào mã code từ ứng dụng Google Authenticator, thông qua hàm verifyAuthenticatorOneCode để kiểm tra và chắn chắn là mã người dùng nhập vào là đúng.

Sign in with Google

Bước 1: Khai báo và khởi tạo gClient.

$soc->gg->gClient($client_id, $client_secret, $developer_key, $login_uri, $app_name='SOC PHP');
  • $client_id, $client_secret, $developer_key: Các chuỗi bí mật lấy từ Google.
  • $login_uri: URL đến trang xử lý việc đăng nhập.
  • $app_name: Tên của ứng dụng.

Bước 2: Sử dụng hàm sau để lấy ra URL, truyền vào href của nút "Đăng nhập bằng Google".

string $soc->gg->getLoginUrl($remember_url)

$remember_url: URL ghi nhớ lại để sau khi người dùng di chuyển sang website của Google, đăng nhập thành công (hoặc thất bại) thì sẽ được điều hướng quay trở lại URL này.

Bước 3: Lấy thông tin người dùng từ Google, xử lý đăng nhập và điều hướng người dùng về URL đã khai báo trước đó.

// Lấy ra mảng thông tin của người dùng từ Google  array $soc->gg->getUserInfo()    // Sau khi có mảng thông tin rồi thì tiến hành xử lý    // Cuối cùng redirect người dùng đến URL mà trước đó đã ghi nhớ ($remember_url)  $soc->gg->getRedirectUrl()
09-08-2021

Bài viết liên quan