gpt4 book ai didi

php - 使用 Symfony 框架的生产服务器上的用户登录失败(由于...无法处理身份验证请求)

转载 作者:IT王子 更新时间:2023-10-29 00:09:04 25 4
gpt4 key购买 nike

我正在为一个项目使用 Symfony,过去 2 天我一直在尝试让登录在生产服务器上工作,但没有成功。我不断收到错误

Authentication request could not be processed due to a system problem.

我已按照此处的指南 (http://symfony.com/doc/current/cookbook/security/entity_provider.html) 设置从数据库加载用户。

我的security.yml 文件:

security:
encoders:
Symfony\Component\Security\Core\User\User: plaintext
Acceptme\UserBundle\Entity\User: plaintext
role_hierarchy:
ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

providers:
in_memory:
memory:
users:
patricia:
password: patricia
roles: 'ROLE_ADMIN'
users:
name: user_provider
entity: { class: AcceptmeUserBundle:User, property: username }

firewalls:
user_area:
pattern: ^/
anonymous: ~
provider: user_provider
form_login:
login_path: login_route
check_path: _login_check
default_target_path: homepage
dev:
pattern: ^/(_(profiler|wdt|error)|css|images|js)/
security: false

default:
anonymous: ~
http_basic: ~

access_control:
- { path: ^/admin, roles: ROLE_ADMIN }

我的SecurityController.php:

namespace AppBundle\Controller;

use Symfony\Component\HttpFoundation\Request;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
use Symfony\Component\Security\Core\SecurityContext;

class SecurityController extends Controller
{
/**
* @Route("/login", name="login_route")
* @Template("security/login.html.twig")
*/
public function loginAction(Request $request)
{
if ($request->attributes->has(SecurityContext::AUTHENTICATION_ERROR)) {
$error = $request->attributes->get(SecurityContext::AUTHENTICATION_ERROR);
} else {
$error = $request->getSession()->get(SecurityContext::AUTHENTICATION_ERROR);
}

return array(
'last_username' => $request->getSession()->get(SecurityContext::LAST_USERNAME),
'error' => $error,
);
}

/**
* @Route("/login_check", name="_login_check")
*/
public function securityCheckAction()
{
// this controller will not be executed,
// as the route is handled by the Security system
}
}

我已尝试将项目上传到 2 个不同的网络主机(FatCow 和 GoDaddy),但问题仍然存在。我在本地使用 PHP 5.4.19(FatCow 使用 5.3.2,GoDaddy 使用 5.4.37)。请记住,使用 XAMPP 在本地主机上工作时一切正常!

我已经确认在这两种情况下都启用了 PDO。我已确认 parameters.yml 文件中的数据库用户名、密码和主机是正确的。本地和远程服务器上的错误日志均未显示任何内容。

我已遵循上一篇文章的所有指示 Deploying Symfony2 app getting fosuserbundle errors仍然没有成功。

最佳答案

错误看起来是这样的:

Authentication request could not be processed due to a system problem.

太笼统了,没有说明问题出在哪里(有一个关于这个问题的问题 here)。

我通过检查日志并查看发生了什么(在 var/logs/dev.log 中)解决了我的问题,希望这对某人有所帮助。

在我的具体案例中,parameters.yml 中关于数据库连接的参数有误。但是,同样,该错误过于笼统,并不一定意味着问题与数据库连接有关。

关于php - 使用 Symfony 框架的生产服务器上的用户登录失败(由于...无法处理身份验证请求),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31519901/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com