对于受限页面,登录和重定向是否有实际的最佳实践?
我找到了很多示例,但所有示例都适用于较早的TYPO3 / felogin / ....版本(无站点配置)
我有以下情况:
我有几个受限页面和一个登录页面(登录)
我希望能够深度链接(例如,按邮件发送)到受限页面-如果用户未登录,则应显示登录表单-成功登录/注册后,应显示深度链接页面。 / p>
我使用TYPO3 9.5,并且在站点配置中添加了403处理以显示我的登录页面的内容。
此步骤正常-显示登录页面。
我在felogin插件中配置了引荐来源网址和GET / POST重定向,但是它们不起作用。
有没有人举一个例子,成功登录/注册后我如何重定向到原始的(受限制的)页面?
谢谢
基督徒
答案 0 :(得分:2)
对于GET / POST重定向,您需要URL参数&return_url=
。也许您可以尝试在403处理程序中重写GET参数以包含该参数。那可能是黄金。
这是我的操作方式:(登录页面上有uid=81
)
errorHandling:
- errorCode: '403'
errorHandler: Page
errorContentSource: 't3://page?uid=81'
...
config {
typolinkLinkAccessRestrictedPages = 81
typolinkLinkAccessRestrictedPages_addParams = &return_url=###RETURN_URL###&pageId=###PAGE_ID###
}
# all plugin configuration via TypoScript. plugin settings in the backend unchanged.
plugin.tx_felogin_pi1 {
redirectMode = getpost,login
redirectFirstMethod = 1
linkConfig.parameter = 81
redirectPageLogin = 96
...
}
<f:link.page pageUid="81" title="Logout" additionalParams="{logintype: 'logout'}">...</f:link.page>
优点:
缺点:
所以我对此不是100%满意。让我们在这里收集最佳实践示例。欢迎反馈。
答案 1 :(得分:1)
在Slack频道的帮助下,我最终找到了一个解决方案,该解决方案将用户重定向到用户请求的访问限制页面:
它适用于TYPO3 v9 +
在站点配置(config.yaml
)中:
errorHandling:
-
errorCode: '403'
errorHandler: PHP
errorPhpClassFQCN: Vendor\ExtName\Error\ErrorHandling
在扩展名setup.typoscript
的{{1}}中:
felogin
config.typolinkLinkAccessRestrictedPages = {$plugin.tx_extname.settings.loginPid}
config.typolinkLinkAccessRestrictedPages_addParams = &return_url=###RETURN_URL###
// Redirect after login on Login page to previous page
plugin.tx_felogin_pi1 {
showLogoutFormAfterLogin = 0
redirectMode = getpost,referer
redirectFirstMethod = 1
}
答案 2 :(得分:0)
我没有在应该保护的页面上添加用户组访问权限。取而代之的是,我在受保护页面的根目录中添加了一个模板,其中包含:
[page["uid"] != 2 && usergroup(1) == false]
page.config >
page.config.additionalHeaders.10 {
header = Location: https://myurl.tld/login
}
[end]
所有对没有用户组1的有效FE用户会话的受保护页面的直接访问将重定向到登录页面(UID = 2)。
这意味着页面树分支包含所有受保护的页面。
模板中的page
必须是包含PAGE对象的数组。
这在TYPO3 V9.5上很好用。