本文講述的是如何為你的PHP項(xiàng)目實(shí)現(xiàn)Google的Oauth系統(tǒng)。這個(gè)示例PHP腳本非常快,對增加你的PHP項(xiàng)目注冊當(dāng)然是很有幫助的。
在這之前,我們已經(jīng)覆蓋了包含F(xiàn)acebook、Twitter、Google plus以及Instagram的Oauth登錄系統(tǒng)示例。很遺憾之前我遺漏掉了Google的Oauth登錄系統(tǒng)。今天我們就來看一下如何為你的web項(xiàng)目實(shí)現(xiàn)Google的Oauth系統(tǒng)。
在這之前,我們已經(jīng)覆蓋了包含F(xiàn)acebook、Twitter、Google plus以及Instagram的Oauth登錄系統(tǒng)示例。很遺憾之前我遺漏掉了Google的Oauth登錄系統(tǒng)。今天我們就來看一下如何為你的web項(xiàng)目實(shí)現(xiàn)Google的Oauth系統(tǒng)。這個(gè)示例腳本非??欤瑢υ黾幽愕膚eb項(xiàng)目注冊當(dāng)然是很有幫助的。
Google Oauth登錄系統(tǒng)開發(fā)示例
數(shù)據(jù)庫設(shè)計(jì)
數(shù)據(jù)庫設(shè)計(jì)很簡單,如下所示:
CREATE TABLE users ( id INT PRIMARY KEY AUTO_INCREMENT, email VARCHAR(50) UNIQUE, fullname VARCHAR(100), firstname VARCHAR(50), lastname VARCHAR(50), google_id VARCHAR(50), gender VARCHAR(10), dob VARCHAR(15), profile_image TEXT, gpluslink TEXT
1,域名注冊
在這里注冊或者添加你的域名。
域名注冊
2,所有權(quán)認(rèn)證
驗(yàn)證您的域名所有權(quán),可以通過HTML文件上傳或包括META標(biāo)記。
所有權(quán)認(rèn)證
3,OAuth Keys
谷歌將提供你OAuth用戶密鑰和OAuth秘密密鑰。
Oauth keys
4, Google API控制臺(tái)
在Google API控制臺(tái)創(chuàng)建客戶端ID。
Google API控制臺(tái)
Google API控制臺(tái)
然后你就可以看見你的客戶端ID和密鑰。
配置好的Google Oauth信息
config.php
你可以在src文件夾找到這個(gè)文件,在這里您需要配置應(yīng)用程序OAuth密鑰,Consumer keys和重定向回調(diào)URL。
// OAuth2 Settings, you can get these keys at https://code.google.com/apis/console Step 6 keys 'oauth2_client_id' => 'App Client ID', 'oauth2_client_secret' => 'App Client Secret', 'oauth2_redirect_uri' => 'http://yoursite.com/gplus/index.php', // OAuth1 Settings Step 3 keys. 'oauth_consumer_key' => 'OAuth Consumer Key', 'oauth_consumer_secret' => 'OAuth Consumer Secret',
google_login.php
Google plus登錄系統(tǒng),你只需要在index.php中加載這個(gè)文件。
<?php
require_once 'src/apiClient.php';
require_once 'src/contrib/apiOauth2Service.php';
session_start();
$client = new apiClient();
setApplicationName("Google Account Login");
$oauth2 = new apiOauth2Service($client);
if (isset($_GET['code']))
{
$client->authenticate();
$_SESSION['token'] = $client->getAccessToken();
$redirect = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
header('Location: ' . filter_var($redirect, FILTER_SANITIZE_URL));
}
if (isset($_SESSION['token'])) {
$client->setAccessToken($_SESSION['token']);
}
if (isset($_REQUEST['logout'])) {
unset($_SESSION['token']);
unset($_SESSION['google_data']); //Google session data unset
$client->revokeToken();
}
if ($client->getAccessToken())
{
$user = $oauth2->userinfo->get();
$_SESSION['google_data']=$user; // Storing Google User Data in Session
header("location: home.php");
$_SESSION['token'] = $client->getAccessToken();
} else {
$authUrl = $client->createAuthUrl();
}
if(isset($personMarkup)):
print $personMarkup;
endif
if(isset($authUrl))
{
echo "<a class="login" href="$authUrl">Google Account Login</a>";
} else {
echo "<a class="logout" href="?logout">Logout</a>";
}
?>
home.php
在這里我們需要向之前創(chuàng)建的user表插入Google plus的session信息。代碼如下:
<?php
session_start();
include('db.php'); //Database Connection.
if (!isset($_SESSION['google_data'])) {
// Redirection to application home page.
header("location: index.php");
}
else
{
//echo print_r($userdata);
$userdata=$_SESSION['google_data'];
$email =$userdata['email'];
$googleid =$userdata['id'];
$fullName =$userdata['name'];
$firstName=$userdata['given_name'];
$lastName=$userdata['family_name'];
$gplusURL=$userdata['link'];
$avatar=$userdata['picture'];
$gender=$userdata['gender'];
$dob=$userdata['birthday'];
//Execture query
$sql=mysql_query("insert into users(email,fullname,firstname,lastname,google_id,gender,dob,profile_image,gpluslink) values('$email','$fullName','$firstName','$lastName','$googleid','$gender','$dob','$avatar','$gplusURL')");
?>
db.php
數(shù)據(jù)庫配置文件。
<?php
$mysql_hostname = "localhost";
$mysql_user = "username";
$mysql_password = "password";
$mysql_database = "databasename";
$bd = mysql_connect($mysql_hostname, $mysql_user, $mysql_password) or die("Could not connect database");
mysql_select_db($mysql_database, $bd) or die("Could not select database");
?>哈爾濱品用軟件有限公司致力于為哈爾濱的中小企業(yè)制作大氣、美觀的優(yōu)秀網(wǎng)站,并且能夠搭建符合百度排名規(guī)范的網(wǎng)站基底,使您的網(wǎng)站無需額外費(fèi)用,即可穩(wěn)步提升排名至首頁。歡迎體驗(yàn)最佳的哈爾濱網(wǎng)站建設(shè)。
