我正在创建一个通过以下电子邮件发送的网址:
$url = $this->getContainerInterface()->get('router')->generate(
'crmpiccobundle_view_subdomain_modify', [
'subdomain' => $site->getSubdomain(),
'subdomain_username' => $site->getSubdomain(),
], UrlGeneratorInterface::ABSOLUTE_URL),
该URL由我的控制器中的以下方法处理:
/**
* @Route(
* "/view/{subdomain}/modify",
* name="crmpiccobundle_view_subdomain_modify"
* )
*
* @Security("is_granted('IS_AUTHENTICATED_FULLY')")
* @Template("CRMPiccoBundle:Admin/View/Modify:index.html.twig")
*
* @param Request $request
* @param string $subdomain
*
* @return array
*/
public function subdomainModifyViewAction(Request $request, string $subdomain)
{
因此,路由/view/{subdomain}/modify
需要身份验证,如果用户未登录,则会将其踢到登录屏幕。我想要实现的是通过'子域名'或者' subdomain_username' (我知道这里有重复)到URL中的登录页面(例如/login?subdomain_username=crmpicco
)或其他方式。
我不认为设置会话变量是合适的,因为脚本是由cron而不是浏览器中的用户运行的。
我可以从/view/crmpicco/modify?subdomain_username=crmpicco
转到/login?subdomain_username=crmpicco
吗?
security.yml
:
access_control:
- {path: /, roles: IS_AUTHENTICATED_ANONYMOUSLY}
- {path: /admin, roles: ROLE_USER}
- {path: /admin/view, roles: ROLE_USER}
答案 0 :(得分:0)
我最终实现此目的的方法是拉出目标网址,该网址会在成功登录后重定向到会话之外(_security.default.target_path
),然后解析它以拉出URL参数({{ 1}})。
?username=crmpicco