原文链接
本文讲述的是如何为你的PHP项目实现Google的Oauth系统。这个示例PHP脚本非常快,对增加你的PHP项目注册当然是很有帮助的。
在这之前,我们已经覆盖了包含Facebook、Twitter、Google plus以及Instagram的Oauth登录系统示例。很遗憾之前我遗漏掉了Google的Oauth登录系统。今天我们就来看一下如何为你的web项目实现Google的Oauth系统。
在这之前,我们已经覆盖了包含Facebook、Twitter、Google plus以及Instagram的Oauth登录系统示例。很遗憾之前我遗漏掉了Google的Oauth登录系统。今天我们就来看一下如何为你的web项目实现Google的Oauth系统。这个示例脚本非常快,对增加你的web项目注册当然是很有帮助的。
Google Oauth登录系统开发示例
数据库设计
数据库设计很简单,如下所示:
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,所有权认证
验证您的域名所有权,可以通过HTML文件上传或包括meta标记。
所有权认证
3,OAuth Keys
谷歌将提供你OAuth用户密钥和OAuth秘密密钥。
Oauth keys
4, Google API控制台
在Google API控制台创建客户端ID。
Google API控制台
Google API控制台
然后你就可以看见你的客户端ID和密钥。
配置好的Google Oauth信息
config.php
你可以在src文件夹找到这个文件,在这里您需要配置应用程序OAuth密钥,Consumer keys和重定向回调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登录系统,你只需要在index.php中加载这个文件。
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 "Google Account Login";
} else {
echo "Logout";
}
?>home.php
在这里我们需要向之前创建的user表插入Google plus的session信息。代码如下:
db.php
数据库配置文件。



