【问题标题】:Slim Framework and Auth0Slim 框架和 Auth0
【发布时间】:2019-05-15 02:59:52
【问题描述】:

近 10 年没有使用 PHP,所以非常脱节。我有一个正在处理的项目,它需要一个具有安全身份验证的 Web 前端。根本不需要 API。

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

我找不到如何将它与 Slim 框架集成,有人能指出正确的方向吗?

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

Slim 看起来对我来说是合适的工具,我需要一些可以让我非常轻松地创建页面的工具,我将在其中显示一些图表,但主要是表格和表单以与数据交互。如果 Slim 不合适,很乐意去别处看看。

谢谢

【问题讨论】:

    标签: slim auth0


    【解决方案1】:

    根据官方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
    }
    

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

    【讨论】:

    • 感谢 Odan,我将容器位添加到依赖项中(运行骨架,这就是放置独白的地方)现在整理一下前端。
    【解决方案2】:

    “但主要是与数据交互的表格和表单”

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-04
      • 2013-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-22
      • 2017-12-12
      相关资源
      最近更新 更多