PHP使用Google Plus Oauth登录

开发 后端
我已经使用PHP通过Google+数据简单实现了一个称为用户身份验证的登录系统。试试这几乎就像twitter登录系统,我希望未来Google+会释放更多选项。

前阵子Google+已经发布了OAuth的应用程序编程接口,现在他们只提供用户活动和循环数据。我已经使用PHP通过Google+数据简单实现了一个称为用户身份验证的登录系统。试试这几乎就像twitter登录系统,我希望未来Google+会释放更多选项。

使用Google Plus Oauth登录 

使用Google Plus Oauth登录

第一步

 

点击这里添加或者注册你的域名。

添加或者注册你的域名 

添加或者注册你的域名

第二步

通过HTML文件上传或包括META标签来验证您的域名所有权。

通过HTML文件上传或包括META标签来验证您的域名所有权。 

通过HTML文件上传或包括META标签来验证您的域名所有权。

第三步

谷歌将会提供你OAuth用户密钥和秘密密钥。

谷歌将会提供你OAuth用户密钥和秘密密钥 

谷歌将会提供你OAuth用户密钥和秘密密钥

第四步

在Oauth控制台创建客户端ID(Client ID)。

在Oauth控制台创建客户端ID(Client ID) 

在Oauth控制台创建客户端ID(Client ID)

在Oauth控制台创建客户端ID(Client ID) 

在Oauth控制台创建客户端ID(Client ID)

第五步

应用的Oauth Client ID和客户端密钥(client secret)。

应用的Oauth Client ID和客户端密钥(client secret) 

应用的Oauth Client ID和客户端密钥(client secret)

下面来看一下我们的程序文件。

#p#

Config.php

在这里,你必须配置OAuth应用密钥和用户密钥。

  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'

gplus_login.php

google+的登录系统。

  1. <?php  
  2. require_once 'src/apiClient.php';  
  3. require_once 'src/contrib/apiPlusService.php';  
  4. session_start ();  
  5. $client = new apiClient ();  
  6. $client->setApplicationName ( "9lessons Google+ Login Application" );  
  7. $client->setScopes ( array ('https://www.googleapis.com/auth/plus.me' ) );  
  8. $plus = new apiPlusService ( $client );  
  9. if (isset ( $_REQUEST ['logout'] )) {  
  10.     unset ( $_SESSION ['access_token'] );  
  11. }  
  12.  
  13. if (isset ( $_GET ['code'] )) {  
  14.     $client->authenticate ();  
  15.     $_SESSION ['access_token'] = $client->getAccessToken ();  
  16.     header ( 'Location: http://' . $_SERVER ['HTTP_HOST'] . $_SERVER ['PHP_SELF'] );  
  17. }  
  18.  
  19. if (isset ( $_SESSION ['access_token'] )) {  
  20.     $client->setAccessToken ( $_SESSION ['access_token'] );  
  21. }  
  22.  
  23. if ($client->getAccessToken ()) {  
  24.     $me = $plus->people->get ( 'me' );  
  25.     $_SESSION ['access_token'] = $client->getAccessToken ();  
  26. else 
  27.     $authUrl = $client->createAuthUrl ();  
  28.  
  29. if (isset ( $me )) {  
  30.     $_SESSION ['gplusdata'] = $me;  
  31.     header ( "location: home.php" );  
  32. }  
  33.  
  34. if (isset ( $authUrl ))  
  35.     print "<a class='login' href='$authUrl'>Google Plus Login </a>";  
  36. else 
  37.     print "<a class='logout' href='index.php?logout'>Logout</a>";  
  38. ?> 

home.php

这里包含了将google+的session信息插入user数据表的PHP代码。

  1. <?php  
  2. session_start();  
  3. if (!isset($_SESSION['gplusdata'])) {  
  4.     // Redirection to home page  
  5.     header("location: index.php");  
  6. }else{  
  7.     $me=$_SESSION['gplusdata'];  
  8.     echo "<img src='{$me['image']['url']}'/>";  
  9.     echo "Name: {$me['displayName']}";  
  10.     echo "Gplus Id:  {$me['id']}";  
  11.     echo "Male: {$me['gender']}";  
  12.     echo "Relationship: {$me['relationshipStatus']}";  
  13.     echo "Location: {$me['placesLived'][0]['value']}";  
  14.     echo "Tagline: {$me['tagline']}";  
  15.     print "<a class='logout' href='index.php?logout'>Logout</a> ";  
  16. }  
  17. ?> 

下面附上使用Google Plus Oauth登录的示例源码:下载点这里

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

【编辑推荐】

责任编辑:张伟 来源: phpFuns
相关推荐

2012-10-12 10:30:37

PHPOauth

2012-05-31 13:59:43

PHP

2012-06-13 10:49:23

PHP

2011-01-20 10:12:06

ibmdwPHPGoogle

2012-11-07 10:01:52

组件技术OAuth授权登陆

2023-08-29 08:00:38

2013-05-16 11:11:41

Google

2012-04-19 10:52:52

2010-03-29 13:39:41

ibmdwPHP

2015-03-13 15:21:23

phpgoogleapi

2009-12-10 17:37:28

PHP Cookie登

2022-08-15 08:34:08

OauthCAS登录

2018-06-10 15:30:36

2010-02-24 15:25:41

ibmdwGooglePHP

2009-04-16 09:59:16

Google App PHPJava

2024-09-11 08:37:39

2009-06-29 13:28:18

PHP小组PHP技巧网站加速

2010-04-21 09:53:24

2012-09-10 10:00:02

2012-05-24 10:15:48

PHP
点赞
收藏

51CTO技术栈公众号