Согласно официальной документации 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
}
Примечание. Не используйте контейнер напрямую.На самом деле лучше использовать внедрение зависимостей.