自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Google Oauth登錄系統(tǒng)開發(fā)示例

開發(fā) 后端
本文講述的是如何為你的web項(xiàng)目實(shí)現(xiàn)Google的Oauth系統(tǒng)。這個(gè)示例腳本非???,對增加你的web項(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)。這個(gè)示例腳本非常快,對增加你的web項(xiàng)目注冊當(dāng)然是很有幫助的。

Google Oauth登錄系統(tǒng)開發(fā)示例 

Google Oauth登錄系統(tǒng)開發(fā)示例

在線Demo:Live Demo

數(shù)據(jù)庫設(shè)計(jì)

數(shù)據(jù)庫設(shè)計(jì)很簡單,如下所示:

  1. CREATE TABLE users  
  2. (  
  3. id INT PRIMARY KEY AUTO_INCREMENT,  
  4. email VARCHAR(50) UNIQUE,  
  5. fullname VARCHAR(100),  
  6. firstname VARCHAR(50),  
  7. lastname VARCHAR(50),  
  8. google_id VARCHAR(50),  
  9. gender VARCHAR(10),  
  10. dob VARCHAR(15),  
  11. profile_image TEXT,  
  12. gpluslink TEXT  

1,域名注冊

這里注冊或者添加你的域名。

域名注冊

域名注冊

2,所有權(quán)認(rèn)證

驗(yàn)證您的域名所有權(quán),可以通過HTML文件上傳或包括META標(biāo)記。

所有權(quán)認(rèn)證 

所有權(quán)認(rèn)證

3,OAuth Keys

谷歌將提供你OAuth用戶密鑰和OAuth秘密密鑰。

Oauth keys 

Oauth keys

4, Google API控制臺

Google API控制臺創(chuàng)建客戶端ID。

Google API控制臺 

Google API控制臺

Google API控制臺 

Google API控制臺

然后你就可以看見你的客戶端ID和密鑰。

配置好的Google Oauth信息 

配置好的Google Oauth信息

config.php

你可以在src文件夾找到這個(gè)文件,在這里您需要配置應(yīng)用程序OAuth密鑰,Consumer keys和重定向回調(diào)URL。

  1. // OAuth2 Settings, you can get these keys at https://code.google.com/apis/console Step 6 keys  
  2. 'oauth2_client_id' => 'App Client ID',  
  3. 'oauth2_client_secret' => 'App Client Secret',  
  4. 'oauth2_redirect_uri' => 'http://yoursite.com/gplus/index.php',  
  5.  
  6. // OAuth1 Settings Step 3  keys.  
  7. 'oauth_consumer_key' => 'OAuth Consumer Key',  
  8. 'oauth_consumer_secret' => 'OAuth Consumer Secret'

google_login.php

Google plus登錄系統(tǒng),你只需要在index.php中加載這個(gè)文件。

  1. <?php  
  2. require_once 'src/apiClient.php';  
  3. require_once 'src/contrib/apiOauth2Service.php';  
  4. session_start();  
  5. $client = new apiClient();  
  6. setApplicationName("Google Account Login");  
  7. $oauth2 = new apiOauth2Service($client);  
  8. if (isset($_GET['code']))  
  9. {  
  10. $client->authenticate();  
  11. $_SESSION['token'] = $client->getAccessToken();  
  12. $redirect = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];  
  13. header('Location: ' . filter_var($redirect, FILTER_SANITIZE_URL));  
  14. }  
  15. if (isset($_SESSION['token'])) {  
  16. $client->setAccessToken($_SESSION['token']);  
  17. }  
  18. if (isset($_REQUEST['logout'])) {  
  19. unset($_SESSION['token']);  
  20. unset($_SESSION['google_data']); //Google session data unset  
  21. $client->revokeToken();  
  22. }  
  23. if ($client->getAccessToken())  
  24. {  
  25. $user = $oauth2->userinfo->get();  
  26. $_SESSION['google_data']=$user// Storing Google User Data in Session  
  27. header("location: home.php");  
  28. $_SESSION['token'] = $client->getAccessToken();  
  29. else {  
  30. $authUrl = $client->createAuthUrl();  
  31. }  
  32. if(isset($personMarkup)):  
  33. print $personMarkup;  
  34. endif 
  35. if(isset($authUrl))  
  36. {  
  37. echo "<a class="login" href="$authUrl">Google Account Login</a>";  
  38. else {  
  39. echo "<a class="logout" href="?logout">Logout</a>";  
  40. }  
  41. ?>  

home.php

在這里我們需要向之前創(chuàng)建的user表插入Google plus的session信息。代碼如下:

  1. <?php  
  2. session_start();  
  3. include('db.php'); //Database Connection.  
  4. if (!isset($_SESSION['google_data'])) {  
  5. // Redirection to application home page.  
  6. header("location: index.php");  
  7. }  
  8. else 
  9. {  
  10. //echo print_r($userdata);  
  11. $userdata=$_SESSION['google_data'];  
  12. $email =$userdata['email'];  
  13. $googleid =$userdata['id'];  
  14. $fullName =$userdata['name'];  
  15. $firstName=$userdata['given_name'];  
  16. $lastName=$userdata['family_name'];  
  17. $gplusURL=$userdata['link'];  
  18. $avatar=$userdata['picture'];  
  19. $gender=$userdata['gender'];  
  20. $dob=$userdata['birthday'];  
  21. //Execture query  
  22. $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')");  
  23. ?> 

db.php

數(shù)據(jù)庫配置文件。

  1. <?php  
  2. $mysql_hostname = "localhost";  
  3. $mysql_user = "username";  
  4. $mysql_password = "password";  
  5. $mysql_database = "databasename";  
  6. $bd = mysql_connect($mysql_hostname$mysql_user$mysql_passwordor die("Could not connect database");  
  7. mysql_select_db($mysql_database$bdor die("Could not select database");  
  8. ?> 

源碼下載

原文鏈接:http://www.phpfuns.com/php/login-with-google-account-oauth.shtml

責(zé)任編輯:張偉 來源: phpFuns
相關(guān)推薦

2012-06-13 10:36:44

PHP

2022-02-08 15:21:59

Hi3861開發(fā)鴻蒙

2011-04-12 16:00:42

銀行系統(tǒng)周偉然

2022-09-19 14:13:15

RabbitMQ系統(tǒng)開發(fā)

2009-08-17 08:37:31

2022-02-09 19:45:41

MQTTOpenHarmon鴻蒙

2011-01-06 15:11:09

嵌入式linux

2015-09-15 17:51:42

存儲系統(tǒng)云存儲存儲開發(fā)

2010-01-15 10:02:57

CentOS5.2 A

2022-01-21 21:22:24

OpenHarmon操作系統(tǒng)鴻蒙

2010-03-04 15:04:35

2022-02-10 15:07:10

云平臺OpenHarmon系統(tǒng)開發(fā)

2023-04-03 15:39:31

2010-04-21 09:53:24

2022-01-24 18:35:56

OpenHarmon鴻蒙操作系統(tǒng)

2012-11-07 10:01:52

組件技術(shù)OAuth授權(quán)登陸

2022-01-19 17:06:40

人工智能衛(wèi)星安全

2015-06-01 10:31:43

微軟開源rDSN

2009-06-29 14:13:00

數(shù)據(jù)網(wǎng)網(wǎng)管系統(tǒng)

2023-03-24 14:39:17

鴻蒙系統(tǒng)開發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號