6/1/17

[Ứng dụng php] đăng nhập (Login) với Google account sử dụng PHP

Trong bài này mình xin hướng dẫn đến các bạn làm chức năng đăng nhập với Google account sử dụng ngôn ngữ PHP. Dưới đây là mô hình của nó.

Google OAuth API cho phép các nhà phát triển web để tích hợp hệ thống đăng nhập vào trang web bằng cách nhanh chóng, dễ dàng và mạnh mẽ. Hệ thống đăng nhập Google giúp tăng đăng ký trang web của bạn. Bởi vì hầu hết người dùng đều có một tài khoản google và họ có thể dễ dàng đăng nhập vào trang web của bạn bằng cách sử dụng tài khoản google của họ. Ở đây tôi đã thực hiện một hệ thống đăng nhập đơn giản bằng cách sử dụng thư viện Google API PHP và làm cho việc chứng thực đơn giản google.

Bước 1: Tạo Google Project:

Truy cập vào: https://console.developers.google.com/ Chọn create project trong này có:

project name: tên project
project ID: ID của project
sau khi điền bạn đồng ý và tạo project.

Vòa menu bên trái: APIs & auth > APIs ra danh sách các APIs

Tìm xuông cái Google+ API. chọn Enable

Trong Menu trái, chọn Credentials dưới API & auth.

Trong OAuth của trang, chọn Create New Client ID.

Create Client ID hộp thoại sẽ xuất hiện cho việc lựa chọn loại ứng dụng.
Trong Application type của hộp thoại, chọn ứng dụng web và kích vào nút màn hình Configure sự đồng ý.
Chọn địa chỉ email, nhập Product name và lưu mẫu.
Trong Authorized JavaScript origins nhập nguồn gốc ứng dụng của bạn. Nếu bạn muốn cho phép ứng dụng của bạn để chạy trên các giao thức khác nhau, tên miền, hoặc tên miền phụ, sau đó bạn có thể nhập nhiều nguồn gốc.
Trong Authorized redirect URI nhập URL chuyển hướng.

Nhấn vào Create Client ID.

google-project-creation-client-id-for-web-application-by-codexworld

Bước 2: Tạo CSDL

CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`oauth_provider` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`oauth_uid` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`fname` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`lname` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`email` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`gender` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
`locale` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
`gpluslink` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`picture` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`created` datetime NOT NULL,
`modified` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

Bước 3: Kết nối CSDL

Mở includes/functions.php


function __construct(){
//config CSDL
$dbServer = 'localhost';
$dbUsername = 'root';
$dbPassword = '';
$dbName = 'vnfit_g';

//kết nối CSDL
$con = mysqli_connect($dbServer,$dbUsername,$dbPassword,$dbName);
if(mysqli_connect_errno()){
die("Failed to connect with MySQL: ".mysqli_connect_error());
}else{
$this->connect = $con;
}
}

Bước 4: Config Google API

Mở config.php


<?php
session_start();
include_once("src/Google_Client.php");
include_once("src/contrib/Google_Oauth2Service.php");

/**
* Google Project API
**/
$clientId = 'ID cho Google Project Client'; //Google CLIENT ID
$clientSecret = 'Google Project Client Secret'; //Google CLIENT SECRET
$redirectUrl = 'http://localhost/login-with-google-using-php'; //return url (url to script)
$homeUrl = http://localhost/login-with-google-using-php'; // trả về

/**
* Confi Google Client
**/
$gClient = new Google_Client();
$gClient->setApplicationName('Login to codexworld.com');
$gClient->setClientId($clientId);
$gClient->setClientSecret($clientSecret);
$gClient->setRedirectUri($redirectUrl);

$google_oauthV2 = new Google_Oauth2Service($gClient);
?>

Chúc các bạn thành công!

Nếu thấy hay hãy chia sẻ bài viết này đến người khác nhé!

0 nhận xét: