假设我们有 3 个应用程序-appMain
和.app1
app2
应用程序 1 和 2 受到保护,它们具有is_secure: true
并且使用 sfDoctrineGuard 插件一切正常。
我想要实现的一种行为是,当用户未通过身份验证时,当前应用程序将他转发给另一个用户,例如appMain
使用已定义的模块和操作。
那可能吗?或者有人可以告诉我在哪里挖掘 symfony 中的安全机制?
假设我们有 3 个应用程序-appMain
和.app1
app2
应用程序 1 和 2 受到保护,它们具有is_secure: true
并且使用 sfDoctrineGuard 插件一切正常。
我想要实现的一种行为是,当用户未通过身份验证时,当前应用程序将他转发给另一个用户,例如appMain
使用已定义的模块和操作。
那可能吗?或者有人可以告诉我在哪里挖掘 symfony 中的安全机制?
制作绝对网址并重定向到那里(“保持简单,愚蠢”)。
好的,现在我得到了这个工作。首先,应用程序转发到安全模块/操作,并在该操作中重定向到主应用程序的 url,该 url 处理身份验证并再次重定向回来。
多谢你们。
假设你有标准的应用程序/前端,那么在应用程序/前端/配置中会有一个文件 settings.yml
在此处的默认部分执行以下操作
default:
.actions:
error_404_module: content
error_404_action: 404
login_module: security
login_action: login
然后这将重定向到安全/登录(或任何你称之为模块和模板的东西)
我通常将顶级 apps/frontend/config/security.yml 设置为 ..
default:
is_secure: true
这可以保护整个站点,然后在任何可公开访问的模块中,在这种情况下,安全性创建一个 config.yml 并设置如下
default:
is_secure: false
然后,当用户按如下方式登录时,您将需要存储已验证为真的事实
$this->getUser()->setAuthenticated(true);
[编辑] 应该指出我没有使用 sfDoctrineGuard