HY,
我想在我的表达应用中使用这个模块(https://github.com/phly/phly-expressive-oauth2clientauthentication)。
我阅读了此文档https://phly.github.io/phly-expressive-oauth2clientauthentication
这就是我所做的:
在我的config / autoload文件夹中,我用这个数组添加了一个oauth2clientauthentication.global.php:
'oauth2clientauthentication' => [
'routes' => [
'production' => '/(:provider)(/oauth2callback)',
],
],
在我的pipeline.php文件中添加
use Phly\Expressive\OAuth2ClientAuthentication\OAuth2CallbackMiddleware;
$app->pipe('/auth', OAuth2CallbackMiddleware::class);
在我的ConfigProvider.php文件中,我添加了一个带有此配置的路由(我使用带有https://github.com/acelaya/expressive-slim-router的slim路由器:
[
'name' => 'admin',
'path' => '/admin',
'allowed_methods' => ['GET'],
'middleware' => [
SessionMiddleware::class,
AuthenticationMiddleware::class,
Action\AdminAction::class,
],
当我尝试使用此网址时:' http://blog/admin',我使用github按钮获取未经身份验证的页面。但是当我点击按钮时,网址是:' http://blog/auth/github?redirect=http://blog/admin'并得到一个错误:
Unable to resolve service "Zend\Expressive\Delegate\NotFoundDelegate"
我不明白问题在哪里,有人有想法解决这个问题吗?
答案 0 :(得分:1)
您似乎升级了Expressive安装而未通过migration guide。
检查config/autoload/dependencies.global.php
。它应该包含这样的内容:
use Zend\Expressive\Container\NotFoundDelegateFactory;
use Zend\Expressive\Delegate\NotFoundDelegate;
return [
'dependencies' => [
'aliases' => [
'Zend\Expressive\Delegate\DefaultDelegate' => NotFoundDelegate::class,
],
'factories' => [
NotFoundDelegate::class => NotFoundDelegateFactory::class,
],
],
];