php - Symfony 4 未登录生产模式
问题描述
我正在用 symfony 4.2 开发一个网站。将它放到生产服务器后,我将 APP_ENV 修改为 prod,然后运行 composer update --no-dev。
这样做后,我无法登录。我没有登录错误。日志文件为空。我不知道,我做错了什么。我也尝试设置 APP_DEBUG=1 但什么都没有......它只是重新加载登录页面,无论我在做什么
这是我的security.yaml:
security:
access_decision_manager:
strategy: affirmative
encoders:
App\Entity\Account: bcrypt
# https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers
providers:
database_users:
entity: { class: App\Entity\Account, property: username }
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
anonymous: true
# activate different ways to authenticate
# http_basic: true
# https://symfony.com/doc/current/security.html#a-configuring-how-your-users-will-authenticate
form_login:
check_path: security_login
login_path: security_login
csrf_token_generator: security.csrf.token_manager
default_target_path: home_index
logout:
path: security_logout
target: security_login
# https://symfony.com/doc/current/security/form_login_setup.html
# Easy way to control access for large sections of your site
# Note: Only the *first* access control that matches will be used
access_control:
# - { path: ^/admin, roles: ROLE_ADMIN }
# - { path: ^/profile, roles: ROLE_USER }
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPERIOR: ROLE_USER
ROLE_SUPERVISOR: ROLE_USER
ROLE_WORKER: ROLE_USER
登录表单:
<form action="{{ path('security_login') }}" method="post" class="panel-body">
{% if error %}
<div class="alert alert-danger">
{{ error.messageKey|trans(error.messageData, 'security') }}
</div>
{% endif %}
<div class="form-group">
<input class="form-control" placeholder="{{ "login.username"|trans }}" type="text" name="_username" id="_username" autofocus />
</div>
<div class="form-group">
<input class="form-control" placeholder="{{ "login.password"|trans }}" type="password" name="_password" id="_password" />
</div>
<input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}" />
<input id="login" type="submit" class="btn btn-lg btn-secondary btn-block" value="{{ "common.button.login"|trans }}" />
<a href="{{ path('security_register') }}" id="register" class="btn btn-lg btn-secondary btn-block">{{ "common.button.registration"|trans }}</a>
</form>
安全控制器:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
class SecurityController extends AbstractController
{
/**
* @Route("/login", name="security_login")
* @param AuthenticationUtils $authenticationUtils
* @return \Symfony\Component\HttpFoundation\Response
*/
public function index(AuthenticationUtils $authenticationUtils)
{
if ($this->get('security.authorization_checker')->isGranted(["ROLE_USER"])) {
return new RedirectResponse(
$this->generateUrl('home_index')
);
}
$error = $authenticationUtils->getLastAuthenticationError();
$lastUsername = $authenticationUtils->getLastUsername();
return $this->render('security/login.html.twig', [
'last_username' => $lastUsername,
'error' => $error
]);
}
/**
* @Route("/logout", name="security_logout")
*/
public function logout()
{
}
}
谢谢您的帮助!
解决方案
如果您的用户表包含登录名和密码,请检查您的数据库。
推荐阅读
- python - 通过python从名称列表中提取最后两个字母
- css - 使用 TailwindCSS 水平定位元素
- android - Flutter:为动态创建的 ui 元素添加标识符(键)
- python - 在python中合并两个逗号分隔的txt文件文件
- angular - rxjs Observable 与预先解析的数据混合
- python - 我应该如何增加我的 python 代码中的分数变量?
- c# - 如何使用子查询在左外连接中转换 lambda
- android - 如何在项目中删除多个版本的 androidx 注释?
- angular - 如果我在另一个组件中显示,Angular 组件不会更新
- java - 区分 Scanner 类在 java 中提供的 Scanner、System.in 和 next() 方法的工作原理?