Slim Framework и Auth0 - PullRequest
       27

Slim Framework и Auth0

1 голос
/ 09 мая 2019

Не работал с PHP уже 10 лет, так что совсем не на связи. У меня есть проект, над которым я работаю, который требует веб-интерфейса с безопасной аутентификацией. API вообще не нужны.

Auth0 соответствует требованиям с точки зрения аутентификации и предоставляет множество опций.

Что я не могу найти, так это как интегрировать это с Slim Framework, кто-нибудь может указать мне правильное направление?

Справочная информация о приложении. Я собираю информацию из нескольких источников API в базу данных и хочу отобразить ее и добавить некоторые дополнительные функции. В настоящее время большая часть этого отображается на информационных панелях Grafana в офисе, но есть некоторые новые требования, которые не могут быть решены с помощью информационных панелей.

Slim выглядит как правильный инструмент для меня, мне нужно что-то, что позволяет мне довольно легко создавать страницы, где я буду фактически отображать несколько графиков, но в основном таблицы и формы для взаимодействия с данными. Если Slim не подходит, с удовольствием посмотрю в другом месте.

Спасибо

Ответы [ 2 ]

0 голосов
/ 09 мая 2019

"но в основном таблицы и формы для взаимодействия с данными"

помимо ваших графиков, которые будут отображаться, если вышеупомянутое является основным требованием, тогда я также рекомендую вам взглянуть на Yii Framework (PHP Framework)

В частности, глядя на Gii - генератор кода, который исключительно быстро создает CRUD-формы и таблицы ...

0 голосов
/ 09 мая 2019

Согласно официальной документации Auth0 Я бы попробовал установку в 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
}

Примечание. Не используйте контейнер напрямую.На самом деле лучше использовать внедрение зависимостей.

...