在PHP中使用Auth0进行身份验证和授权

在本文中,我们将探索Auth0服务,该服务提供身份验证和授权即服务。 Auth0允许您在瞬间设置应用程序的基本身份验证和授权功能。

什么是Auth0?

Auth0是一种身份验证即服务工具,可轻松实现站点中与身份验证相关的功能的实现。 如果您已经构建了一个应用程序并且只想将身份验证和授权功能外包,则应考虑使用Auth0之类的服务。

让我快速总结一下Auth0提供的功能:

  • 单点登录
  • 多因素认证
  • 无密码登录
  • 用户管理
  • 以及更多

在本文中,我们将介绍一些可以在Web应用程序中实现的单点登录方法,以便利用Auth0服务提供的身份验证功能。

在本文的前半部分,我们将探讨如何在服务器端PHP Web应用程序中设置基本身份验证功能。 在下半部分,我将解释如何通过使用Auth0服务设置OAuth授权来保护自定义API。

服务器端身份验证集成

在本节中,我们将介绍如何使用Auth0快速设置服务器端Web应用程序的基本身份验证。 实际上,Auth0团队已经提供了一个方便的GitHub示例,用于演示基本示例,因此我们将使用它而不是重新发明轮子。

在继续之前,请确保安装Composer,因为它将使用composer.json文件安装实际的Auth0 SDK。 另外,如果您想按照本文中的示例进行操作,请继续使用Auth0免费帐户。

设置项目

让我们继续进行示例项目的克隆。

git clone https://github.com/auth0-samples/auth0-php-web-app.git .

继续运行composer install命令以安装依赖项。

cd 00-Starter-Seed
composer install

根据composer.json文件,它应该已经安装了vlucas/phpdotenvauth0/auth0-php软件包。

{
    "name": "auth0/basic-webapp-sample",
    "description": "Basic sample for securing a WebApp with Auth0",
    "require": {
         "vlucas/phpdotenv": "2.4.0",
         "auth0/auth0-php": "~5.0"
    },
    "license": "MIT",
    "authors": [
        {
            "name": "Martin Gontovnikas",
            "email": "martin@gon.to"
        },
        {
            "name": "Germán Lena",
            "email": "german.lena@gmail.com"
        }
    ]
}

vlucas/phpdotenv库用于初始化.env文件中的环境变量。 因此,它允许您将配置与在环境之间更改的代码分开。

另一方面, auth0/auth0-php软件包将帮助我们在应用程序中设置授权。

接下来,让我们在.env文件中设置应用程序的配置。 继续并通过从.env.example文件中复制该文件来创建.env文件。

cp .env.example .env

它包含将由Auth0库使用的配置值。

AUTH0_CLIENT_ID={CLIENT_ID}
AUTH0_DOMAIN={DOMAIN_NAME}
AUTH0_CLIENT_SECRET={CLIENT_SECRET}
AUTH0_CALLBACK_URL={CALLBACK_URL}
AUTH0_AUDIENCE=

您应该能够在Auth0信息中心的“应用程序”>“默认应用程序”>“设置”下找到大多数设置。 请注意,我使用的是系统创建的默认应用程序。 当然,如果需要,您可以继续创建一个新的应用程序。

AUTH0_CALLBACK_URL是您的应用程序的URL,Auth0将在登录和注销后重定向用户。 您必须在Auth0仪表板上的应用程序设置下的“ Allowed Callback URLs下配置在此字段中设置的值。

您将找到实现大多数身份验证逻辑的三个主要文件。

  • index.php :这是基于用户状态显示登录或注销按钮的主页。
  • login.php :当您单击登录按钮时,将启动此脚本,它将把用户重定向到Auth0登录界面进行登录。 登录后,它们将被重定向回AUTH0_CALLBACK_URL
  • logout.php :当您单击注销按钮时,将启动此脚本,它将在后台将用户重定向到Auth0,注销用户,然后将其返回到AUTH0_CALLBACK_URL

重点项目文件

让我们快速浏览入门项目中的每个文件。

登录脚本

我们将从login.php文件开始。

<?php
require __DIR__ . '/vendor/autoload.php';
require __DIR__ . '/dotenv-loader.php';

use Auth0\SDK\Auth0;

$domain        = getenv('AUTH0_DOMAIN');
$client_id     = getenv('AUTH0_CLIENT_ID');
$client_secret = getenv('AUTH0_CLIENT_SECRET');
$redirect_uri  = getenv('AUTH0_CALLBACK_URL');
$audience      = geten
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值