使用 Google 进行简单的 PHP 登录

(1A) 向 Google 注册

访问Google API 控制台。
创建一个新项目,或选择现有项目。
接下来,转到“OAuth 同意屏幕”。
填写您的应用程序信息。
范围可以留空。
在“测试用户”下注册您自己的 Gmail 帐户。
最后,转到“凭据”。
创建凭据、OAuth 客户端 ID。
设置http://localhost用于测试…或您正在使用的任何域。
设置http://localhost/3-login.php为重定向 URL。

(1B) 下载 GOOGLE API 客户端

如果您尚未安装Composer,请安装它。
打开命令行(或终端)。
导航到您的项目文件夹。cd PATH/YOUR/PROJECT
跑composer require google/apiclient。
Composer 会自动将最新版本下载到vendor/文件夹中。

(2) 初始化谷歌客户端库

<?php
// (A) LOAD GOOGLE CLIENT LIBRARY
require("vendor/autoload.php");

// (B) NEW GOOGLE CLIENT
$goo = new Google\Client();
$goo->setClientId("YOUR-ID");
$goo->setClientSecret("YOUR-SECRET");
$goo->addScope("email");
$goo->addScope("profile");
$goo->setRedirectUri("http://localhost/3-login.php");

将您的客户端 ID 和密码粘贴到此处。这只是一个要创建的脚本$goo = new Google\Client(),因此我们不必到处重复此操作。

(3) 登录页面

<?php
// (A) ALREADY SIGNED IN
session_start();
if (isset($_SESSION["token"])) {
   
  header("Location: 4-home.php"); exit;
}

// (B) ON LOGIN - PUT TOKEN INTO SESSION
require "2-google.php";
if (isset($_GET["code"]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,这里提供一个基于 HTML 和 PHP 的后台登录实例,包含谷歌动态验证码的实现: ```html <!DOCTYPE html> <html> <head> <title>Login</title> </head> <body> <?php // 引入pyotp库 require_once('pyotp.php'); // 开启session session_start(); if ($_SERVER['REQUEST_METHOD'] == 'POST') { // 获取用户提交的表单数据 $username = $_POST['username']; $password = $_POST['password']; $verify_code = $_POST['verify_code']; // 获取session中保存的秘钥 $secret_key = $_SESSION['secret_key']; // 根据秘钥生成动态验证码 $totp = new \OTPHP\TOTP($secret_key); $dynamic_code = $totp->now(); // 判断动态验证码是否正确 if ($verify_code == $dynamic_code) { // 此处省略用户名密码验证过程,如果验证通过则跳转到后台首页 echo 'Login success!'; } else { // 动态验证码输入错误,返回登录页面并提示错误信息 echo '<p style="color: red;">动态验证码输入错误!</p>'; } } else { // 生成一个随机的32位秘钥 $secret_key = \OTPHP\TOTP::randomBase32(); // 将秘钥存储到session中 $_SESSION['secret_key'] = $secret_key; // 根据秘钥生成动态验证码 $totp = new \OTPHP\TOTP($secret_key); $dynamic_code = $totp->now(); // 返回包含动态验证码的登录页面 echo '<form action="" method="POST">'; echo '<input type="text" name="username" placeholder="Username"><br>'; echo '<input type="password" name="password" placeholder="Password"><br>'; echo '<input type="text" name="verify_code" placeholder="Dynamic code"><br>'; echo '<img src="' . $totp->getQrCodeUri() . '" alt="Google Authenticator"><br>'; echo '<input type="submit" value="Login">'; echo '</form>'; } ?> </body> </html> ``` 在上面的代码中,我们使用PHP 语言和 pyotp 库来生成谷歌动态验证码。在每次登录页面加载时,我们都会生成一个新的秘钥,并将其存储在 session 中。同时,我们使用秘钥生成动态验证码,并将其返回到登录页面。当用户提交表单时,我们会获取用户输入的动态验证码,并根据存储在 session 中的秘钥重新生成动态验证码进行比较。如果动态验证码输入正确,则允许用户登录后台;否则,提示用户重新输入动态验证码。 需要注意的是,上面的代码只是一个简单的示例,实际应用中需要进行更加严格的用户验证和安全措施,例如限制动态验证码的有效时间和使用次数等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Q shen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值