热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在PHP中创建Google登录页面

在本文中,我将解释如何在您的PHP网站中集成Google登录。我们将使用GoogleOAuthAPI,这是一种将Google登录名添加到您的网站的简便而

在本文中,我将解释如何在您的PHP网站中集成Google登录。 我们将使用Google OAuth API,这是一种将Google登录名添加到您的网站的简便而强大的方法。

作为Web用户,您可能已经经历了为不同站点管理不同帐户的麻烦-特别是当您具有用于不同服务的多个密码,并且某个网站要求您在其站点上创建另一个帐户时。

为了解决这个问题,您可以提供单点登录功能,以允许访问者使用其现有凭据在您的网站上开设一个帐户。 如今,许多网站都允许用户使用他们在Google,Facebook或其他流行服务上的现有帐户登录。 对于新用户而言,这是一种便捷的方式,可以在第三方站点上进行注册,而无需使用其他用户名和密码注册新帐户。

Google登录如何工作

首先,让我们了解Google登录在您网站上的工作流程。

在站点的登录页面上,用户可以选择两个选项来登录。第一个选项是提供用户名和密码(如果他们已经在您的站点中拥有帐户)。 另一种是使用他们现有的Google帐户登录您的网站。

当他们单击“ 使用Google登录”按钮时,它将启动Google登录流程并将用户带到Google网站进行登录。 到达那里后,他们将使用自己的Google凭据登录,然后将其重定向到同意页面。

在同意页面上,将要求用户授予与第三方网站共享其Google帐户信息的权限。 在这种情况下,第三方站点是他们要使用其Google帐户登录的站点。 将为他们提供两个选项:它们可以允许或拒绝。

一旦他们允许与第三方站点共享信息,它们将被带回到发起Google登录流程的第三方站点。

此时,用户已使用Google登录,并且第三方站点有权访问用户个人资料信息,该信息可用于创建帐户和进行用户登录。

这就是在您的网站上集成Google登录的基本流程。 在本文的其余部分,我们将在一个工作示例中使用PHP实现此登录流程。

设置用于Google登录的项目

在本节中,我们将介绍将Google登录名与您的PHP网站集成所需的基本设置。

创建一个Google API项目

首先,您需要使用Google创建一个应用程序,以便您可以通过Google注册您的网站。 它使您可以设置有关网站的基本信息以及一些技术细节。

使用Google登录后,打开Google Developers控制台 。 这将打开Google信息中心页,如以下屏幕截图所示。

Google资讯主页

从左上方菜单中,单击“ 选择项目”链接。 这将打开一个弹出窗口,如以下屏幕截图所示。

选择一个项目弹出

单击“ 新建项目”链接,它将要求您输入项目名称和其他详细信息。 如下例所示,填写必要的详细信息。

Google信息中心中的“新项目”页面

单击创建按钮以保存您的新项目。 您将被重定向到“ 仪表板”页面。 点击左侧栏中的凭据 ,然后转到OAuth同意屏幕标签。

OAuth同意画面

在此页面上,您需要输入有关应用程序的详细信息,例如应用程序名称,徽标以及其他一些详细信息。 填写必要的详细信息并保存。 出于测试目的,只需输入应用程序名称即可。

接下来,单击左侧边栏中的凭据 。 这将显示“ 凭据”选项卡下的“ API凭据”框,如以下屏幕截图所示。

Google Dashboar中的API凭据选择

点击客户端凭据> OAuth客户端ID ,为我们的应用程序创建一组新的凭据。 这将为您显示一个屏幕,要求您选择适当的选项。 在本例中,选择Web应用程序选项,然后单击“ 创建”按钮。 系统将要求您提供有关您的应用程序的更多详细信息。

创建OAuth客户端ID

输入上面的屏幕截图中显示的详细信息并保存! 当然,您需要根据应用程序设置来设置重定向 URI 。 这是登录后将重定向用户的URL。

至此,我们已经创建了Google OAuth2客户端应用程序,现在我们应该能够使用该应用程序在我们的网站上集成Google登录信息。 请记下客户端ID客户端密钥 价值观 在我们这一端的应用程序配置过程中将需要这样做。 在编辑应用程序时,您始终可以找到客户端ID客户端密钥

安装Google PHP SDK客户端库

在本部分中,我们将看到如何安装Google PHP API客户端库。 您可以选择两个选项来安装它:

  1. 使用Composer。
  2. 手动下载并安装库文件。

作曲方式

如果您更喜欢使用Composer进行安装,则只需运行以下命令。

$composer require google/apiclient:"^2.0"

就是这样!

下载版本

如果您不想使用Composer,也可以从官方API页面下载最新的稳定版本。

在我的示例中,我只是使用了Composer。

如果您继续这样做,那么现在您应该已经配置了Google应用程序并安装了Google PHP API客户端库。 在下一个也是最后一个部分,我们将在PHP网站中看到如何使用此库。

客户端库集成

回想一下,在配置Google应用程序时,我们必须在应用程序配置中提供重定向URI ,并将其设置为重定向到http://localhost/redirect.php 。 现在是时候创建redirect.php文件了。

继续并使用以下内容创建redirect.php

require_once 'vendor/autoload.php';// init configuration
$clientID = '';
$clientSecret = '';
$redirectUri = '';// create Client Request to access Google API
$client = new Google_Client();
$client->setClientId($clientID);
$client->setClientSecret($clientSecret);
$client->setRedirectUri($redirectUri);
$client->addScope("email");
$client->addScope("profile");// authenticate code from Google OAuth Flow
if (isset($_GET['code'])) {$token = $client->fetchAccessTokenWithAuthCode($_GET['code']);$client->setAccessToken($token['access_token']);// get profile info$google_oauth = new Google_Service_Oauth2($client);$google_account_info = $google_oauth->userinfo->get();$email = $google_account_info->email;$name = $google_account_info->name;// now you can use this profile info to create account in your website and make user logged in.
} else {echo "createAuthUrl()."'>Google Login";
}
?>

让我们看一下代码的关键部分。

我们需要做的第一件事是包括autoload.php文件。 这是Composer的一部分,可确保自动加载我们在脚本中使用的类。

require_once 'vendor/autoload.php';

接下来,有一个配置部分,它通过设置必要的设置来初始化应用程序配置。 当然,您需要用相应的值替换占位符。

// init configuration
$clientID = '';
$clientSecret = '';
$redirectUri = '';

下一节将实例化Google_Client对象,该对象将用于执行各种操作。 除此之外,我们还初始化了应用程序设置。

// create Client Request to access Google API
$client = new Google_Client();
$client->setClientId($clientID);
$client->setClientSecret($clientSecret);
$client->setRedirectUri($redirectUri);

接下来,我们添加了电子邮件和个人资料范围,因此在登录后,我们可以访问基本的个人资料信息。

$client->addScope("email");
$client->addScope("profile");

最后,我们有一段代码使登录流程变得神奇。

// authenticate code from Google OAuth Flow
if (isset($_GET['code'])) {$token = $client->fetchAccessTokenWithAuthCode($_GET['code']);$client->setAccessToken($token['access_token']);// get profile info$google_oauth = new Google_Service_Oauth2($client);$google_account_info = $google_oauth->userinfo->get();$email = $google_account_info->email;$name = $google_account_info->name;// now you can use this profile info to create account in your website and make user logged in.
} else {echo "createAuthUrl()."'>Google Login";
}

首先,让我们看一下else部分,该部分将在您直接访问脚本时触发。 它显示一个链接,该链接将用户带到Google进行登录。 请务必注意,我们已经使用了Google_ClientcreateAuthUrl方法来构建OAuth URL。

单击Google登录链接后,用户将被带到Google网站进行登录。 登录后,Google会通过传递code查询字符串变量将用户重定向回我们的网站。 这就是if块中的PHP代码将被触发的时候。 我们将使用代码交换访问令牌。

获得访问令牌后,我们就可以使用Google_Service_Oauth2服务来获取已登录用户的个人资料信息。

因此,通过这种方式,一旦用户登录到Google帐户,您就可以访问个人资料信息。 您可以使用此信息在您的站点上创建帐户,也可以将其存储在会话中。 基本上,这取决于您如何使用此信息以及如何响应用户登录到您的站点这一事实。

有用的PHP表单脚本

今天,我们讨论了如何将Google登录信息与PHP网站集成。 如果用户不想为您的服务创建另一个帐户,则可以使用该帐户登录现有的Google帐户。

如果您有任何疑问,请在下面的评论中告诉我!

翻译自: https://code.tutsplus.com/tutorials/create-a-google-login-page-in-php--cms-33214



推荐阅读
  • 本文介绍了在Ubuntu 11.10 x64环境下安装Android开发环境的步骤,并提供了解决常见问题的方法。其中包括安装Eclipse的ADT插件、解决缺少GEF插件的问题以及解决无法找到'userdata.img'文件的问题。此外,还提供了相关插件和系统镜像的下载链接。 ... [详细]
  • 20211101CleverTap参与度和分析工具功能平台学习/实践
    1.应用场景主要用于学习CleverTap的使用,该平台主要用于客户保留与参与平台.为客户提供价值.这里接触到的原因,是目前公司用到该平台的服务~2.学习操作 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
  • 本文介绍了Sencha Touch的学习使用心得,主要包括搭建项目框架的过程。作者强调了使用MVC模式的重要性,并提供了一个干净的引用示例。文章还介绍了Index.html页面的作用,以及如何通过链接样式表来改变全局风格。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • 本文讨论了在使用PHP cURL发送POST请求时,请求体在node.js中没有定义的问题。作者尝试了多种解决方案,但仍然无法解决该问题。同时提供了当前PHP代码示例。 ... [详细]
  • EasyCVR如何通过接口调用设备录像的倍速回放?
    本文介绍了EasyCVR平台通过接口调用设备录像的倍速回放的步骤,包括登录接口、获取设备和通道接口、播放设备录像、回放控制接口等。EasyCVR平台支持多种设备接入方式和流媒体处理分发,适用于各种场景,如智慧工地、智慧工厂、智慧校园等。用户可以前往演示平台进行体验或部署测试。 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • PHPMailer邮件类邮件发送功能的使用教学及注意事项
    本文介绍了使用国外开源码PHPMailer邮件类实现邮件发送功能的简单教学,同时提供了一些注意事项。文章涵盖了字符集设置、发送HTML格式邮件、群发邮件以及避免类的重定义等方面的内容。此外,还提供了一些与PHP相关的资源和服务,如传奇手游游戏源码下载、vscode字体调整、数据恢复、Ubuntu实验环境搭建、北京爬虫市场、进阶PHP和SEO人员需注意的内容。 ... [详细]
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
author-avatar
栗子丶子兮_481
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有