我有一个应用程序已经工作了一段时间,完全正常工作的登录和创建新的用户功能,并且在我试图切换用户的地方 - 改变角色 - 我无法再次登录。在对代码进行一些挖掘之后,我发现在登录后抛出了302代码状态,因此日志记录过程停止了工作。
我的SecurityController中有这个代码:
return new RedirectResponse('/sys-admin/');
并将该代码更改为:
return $this->forward('AppBundle:SystemAdmin:index', array());
让它工作,我再次登录,但现在我的所有路线都停止工作,我的意思是在我看来有按钮之类的东西:
<a href="{{ path('system_admin_client') }}"
class="btn pmd-btn-flat btn-default">Go!</a>
当我点击我注销的按钮并重定向到登录页面并在任何浏览器的网络选项卡中,我可以看到路由sys-admin/client
自我登出后有状态码302。
正在运行bin/console debug:router
向我显示我的所有路线都在那里,对于此示例,运行bin/console router:match /sys-admin/client
也会向我显示与控制器和每个信息的匹配。
这是我的路线的样子:
app_system_admin:
prefix: /sys-admin
resource: "@AppBundle/Resources/config/routing/sys_admin.yml"
system_admin_client:
path: /client
defaults: { _controller: AppBundle:SystemAdmin:index}
我无法弄清楚出了什么问题!任何帮助将不胜感激。谢谢!
更多信息:我正在使用Symfony 4.0.4,如果我尝试做任何路由转发它的工作,但重定向不是。
答案 0 :(得分:0)
302 HTTP状态代码用于重定向,这不是错误。
这是正常的,因为您返回了library(tidyverse)
#> ── Attaching packages ─────────────────────────────────────────────────────────────────────────────────────────────── tidyverse 1.2.1 ──
#> ✔ ggplot2 2.2.1 ✔ purrr 0.2.4
#> ✔ tibble 1.4.2 ✔ dplyr 0.7.4
#> ✔ tidyr 0.8.0 ✔ stringr 1.3.0
#> ✔ readr 1.1.1 ✔ forcats 0.3.0
#> ── Conflicts ────────────────────────────────────────────────────────────────────────────────────────────────── tidyverse_conflicts() ──
#> ✖ dplyr::filter() masks stats::filter()
#> ✖ dplyr::lag() masks stats::lag()
library(lubridate)
#>
#> Attaching package: 'lubridate'
#> The following object is masked from 'package:base':
#>
#> date
# Input 1
fc_periods <- data_frame(
period = c("m1", "m2", "m3"),
start = c(ymd("2018-01-01"), ymd("2018-02-01"), ymd("2018-03-01")),
end = c(ymd("2018-01-31"), ymd("2018-02-28"), ymd("2018-03-31"))
)
# Input 2
unspread_data <- data_frame(
act_start = c(ymd("2017-11-01"), ymd("2018-01-10"), ymd("2018-02-14"), ymd("2017-12-01")),
act_end = c(ymd("2018-04-30"), ymd("2018-01-25"), ymd("2018-03-16"), ymd("2017-12-31")),
value = c(600, 100, 200, 999)
)
spread_data <- fc_periods %>% pmap_df(function(period, start, end, int){
unspread_data %>%
mutate(
month = period,
overlap1 = if_else(act_start >= start & act_start <= end & act_end >= start & act_end <= end, as.numeric(act_end - act_start), 0),
overlap2 = if_else(act_start >= start & act_start <= end, as.numeric(as_date(end) - act_start), 0),
overlap3 = if_else(act_end >= start & act_end <= end, as.numeric(act_end - as_date(start)), 0),
overlap4 = if_else(act_start < start & act_end > end, as.numeric(as_date(end) - as_date(start)), 0),
days = as.numeric(act_end - act_start),
overlap = if_else(overlap1 > 0, overlap1,
if_else(overlap2 > 0, overlap2,
if_else(overlap3 > 0, overlap3,
if_else(overlap4 > 0, overlap4, 0)))),
fraction = if_else(days > 0, overlap / days, 0),
rev = fraction * value
)
})
。
在我看来,问题不是来自重定向。 你应该把它放回去检查用户切换功能(或用户自己)。 如果这样做,请不要硬编码重定向路径。使用Symfony方法生成它,如:
RedirectResponse
答案 1 :(得分:0)
经过大量调查后我找到了解决方案。我使用docker使整个应用程序运行,由于某种原因,php-fpm日志显示没有错误,但错误是由于无法访问用户而导致php会话被破坏,更改为docker上的root用户修复了此问题,因为root有权访问。