苗条的框架和 Auth0

Slim Framework and Auth0

近 10 年没有与 PHP 一起工作了,所以非常不合时宜。我有一个正在处理的项目,该项目需要具有安全身份验证的 Web 前端。根本不需要 API。

A​​uth0从认证的角度满足要求,提供了很多选择。

我找不到的是如何将其与 Slim Framework 集成,谁能指出正确的方向?

关于应用程序的背景,我正在将来自多个 API 来源的信息整理到一个数据库中,并希望将其显示出来并添加更多功能。目前大部分显示在办公室周围的 Grafana 仪表盘上,但是有一些新的要求,无法用仪表盘解决。

Slim 看起来是适合我的工具,我需要一些可以让我很容易地创建页面的东西,我将在这些页面上显示一些图形,但主要是表格和表单以与数据交互。如果 Slim 不合适,很乐意去别处看看。

谢谢

根据官方 Auth0 documentation 我会尝试在 Slim 3 中这样设置:

安装

composer require auth0/auth0-php

容器设置

添加一个新的容器工厂条目:

use Auth0\SDK\Auth0;
use Psr\Container\ContainerInterface as Container;

//...

$container[Auth0::class] = function (Container $container) {
    return new Auth0([
        'domain' => 'YOUR_DOMAIN',
        'client_id' => 'YOUR_CLIENT_ID',
        'client_secret' => 'YOUR_CLIENT_SECRET',
        'redirect_uri' => 'https://YOUR_APP/callback',
        'audience' => 'https://YOUR_DOMAIN/userinfo',
        'scope' => 'openid profile',
        'persist_id_token' => true,
        'persist_access_token' => true,
        'persist_refresh_token' => true,
    ]);
};

用法

用户的信息存储在会话中。每次调用 getUser() 时,它都会从会话中检索信息。

use Auth0\SDK\Auth0;

$auth0 = $container->get(Auth0::class);
$userInfo = $auth0->getUser();

if (!$userInfo) {
    // We have no user info
    // redirect to Login
} else {
    // User is authenticated
    // Say hello to $userInfo['name']
    // print logout button
}

注意:不要直接使用容器。实际上,使用依赖注入更好。

"but mostly tables and forms to interact with the data"

除了要显示的图表之外,如果以上是主要要求,那么我还建议您查看 Yii Framework(一个 PHP 框架)

特别是 Gii - 一个代码生成器,可以非常快速地构建 CRUD 表单和表格...