本站已关停,现有内容仅作科研等非赢利用途使用。特此声明。
查看: 3431|回复: 0
打印 上一主题 下一主题

PHP教程:使用Google Plus Oauth登录[转]

[复制链接]
跳转到指定楼层
1#
发表于 2012-10-28 12:38:32 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
前阵子Google+已经发布了OAuth的应用程序编程接口,现在他们只提供用户活动和循环数据。我已经使用PHP通过Google+数据简单实现了一个称为用户身份验证的登录系统。试试这几乎就像twitter登录系统,我希望未来Google+会释放更多选项。



使用Google Plus Oauth登录


第一步

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



添加或者注册你的域名


第二步

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


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



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



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


第四步

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



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




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


第五步

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



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



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

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. // OAuth1 Settings Step 3  keys.
  6. 'oauth_consumer_key' => 'OAuth Consumer Key',
  7. '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. if (isset ( $_GET ['code'] )) {
  13.         $client->authenticate ();
  14.         $_SESSION ['access_token'] = $client->getAccessToken ();
  15.         header ( 'Location: http://' . $_SERVER ['HTTP_HOST'] . $_SERVER ['PHP_SELF'] );
  16. }

  17. if (isset ( $_SESSION ['access_token'] )) {
  18.         $client->setAccessToken ( $_SESSION ['access_token'] );
  19. }

  20. if ($client->getAccessToken ()) {
  21.         $me = $plus->people->get ( 'me' );
  22.         $_SESSION ['access_token'] = $client->getAccessToken ();
  23. } else
  24.         $authUrl = $client->createAuthUrl ();

  25. if (isset ( $me )) {
  26.         $_SESSION ['gplusdata'] = $me;
  27.         header ( "location: home.php" );
  28. }

  29. if (isset ( $authUrl ))
  30.         print "<a class='login' href='$authUrl'>Google Plus Login </a>";
  31. else
  32.         print "<a class='logout' href='index.php?logout'>Logout</a>";
  33. ?>
复制代码
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登录的示例源码:

gplus.zip (97.33 KB, 下载次数: 73)



本文转自:PHP爱好者


ChinaGDG.com
回复

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表