成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Google Oauth登錄系統開發示例

開發 后端
本文講述的是如何為你的web項目實現Google的Oauth系統。這個示例腳本非常快,對增加你的web項目注冊當然是很有幫助的。

在這之前,我們已經覆蓋了包含Facebook、Twitter、Google plus以及Instagram的Oauth登錄系統示例。很遺憾之前我遺漏掉了Google的Oauth登錄系統。今天我們就來看一下如何為你的web項目實現Google的Oauth系統。這個示例腳本非常快,對增加你的web項目注冊當然是很有幫助的。

Google Oauth登錄系統開發示例 

Google Oauth登錄系統開發示例

在線Demo:Live Demo

數據庫設計

數據庫設計很簡單,如下所示:

  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,所有權認證

驗證您的域名所有權,可以通過HTML文件上傳或包括META標記。

所有權認證 

所有權認證

3,OAuth Keys

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

Oauth keys 

Oauth keys

4, Google API控制臺

Google API控制臺創建客戶端ID。

Google API控制臺 

Google API控制臺

Google API控制臺 

Google API控制臺

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

配置好的Google Oauth信息 

配置好的Google Oauth信息

config.php

你可以在src文件夾找到這個文件,在這里您需要配置應用程序OAuth密鑰,Consumer keys和重定向回調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登錄系統,你只需要在index.php中加載這個文件。

  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

在這里我們需要向之前創建的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

數據庫配置文件。

  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

責任編輯:張偉 來源: phpFuns
相關推薦

2012-06-13 10:36:44

PHP

2022-02-08 15:21:59

Hi3861開發鴻蒙

2011-04-12 16:00:42

銀行系統周偉然

2022-09-19 14:13:15

RabbitMQ系統開發

2009-08-17 08:37:31

2022-02-09 19:45:41

MQTTOpenHarmon鴻蒙

2015-09-15 17:51:42

存儲系統云存儲存儲開發

2011-01-06 15:11:09

嵌入式linux

2010-01-15 10:02:57

CentOS5.2 A

2022-01-21 21:22:24

OpenHarmon操作系統鴻蒙

2010-03-04 15:04:35

2023-04-03 15:39:31

2022-02-10 15:07:10

云平臺OpenHarmon系統開發

2010-04-21 09:53:24

2022-01-24 18:35:56

OpenHarmon鴻蒙操作系統

2015-06-01 10:31:43

微軟開源rDSN

2022-01-19 17:06:40

人工智能衛星安全

2009-06-29 14:13:00

數據網網管系統

2023-03-24 14:39:17

鴻蒙系統開發

2018-12-18 13:54:57

MVPGoogleAndroid
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区三区在线免费观看 | 日日操视频 | 性高湖久久久久久久久aaaaa | 超碰97人人人人人蜜桃 | 中文字幕一区二区三区精彩视频 | 二区视频| 影视先锋av资源噜噜 | 国产精品久久99 | 欧美日韩国产精品一区 | 国产亚洲欧美在线 | 色婷婷激情综合 | 成人不卡视频 | 午夜影院网站 | 日韩在线欧美 | 99久久婷婷国产综合精品电影 | 国产日韩欧美电影 | 亚洲国产成人精品一区二区 | 日本免费视频在线观看 | 91视频在线看 | 久久99国产精品 | 精品欧美一区二区三区免费观看 | 日日日色 | 亚洲欧美日韩精品久久亚洲区 | av一区二区三区 | av先锋资源| 成人激情视频在线观看 | 久久久久国产一区二区三区四区 | 亚洲激精日韩激精欧美精品 | 欧美精品国产精品 | 放个毛片看看 | 久久av一区二区三区 | 97久久精品午夜一区二区 | 久草新在线 | 亚洲成a人片 | 国产精品久久久久一区二区三区 | 91精品国产91久久久久久 | 日本成人三级电影 | 午夜色播 | 精品网站999 | 久久69精品久久久久久国产越南 | 国产精品免费一区二区 |