isLoggedIn的MODX登录块

时间:2014-05-21 10:50:06

标签: login modx

我正在使用isLoggedIn Script作为仅限会员的网站。它似乎除了一件事之外几乎完美:我正在使用普通的Chunk(lgnLoginTpl),它带有完整的Login包。在形式上需要一个带有url / domain等的动作,但我需要它动态。这意味着如果您进入受保护的页面,您将被重定向到登录并登录到受保护的页面。我有多个受保护的页面,所以它必须是某种“智能”。 & redirectToPrior = 1在这种情况下也不起作用。

任何人都可以帮忙告诉我如何正确设置lgnLoginTpl以使isLoggedIn脚本能够正常工作吗?

2 个答案:

答案 0 :(得分:0)

这听起来像是问题的第一部分,在需要时重定向到登录页面,只需在系统设置中设置正确的“未授权页面”即可解决。 & redirectToPrior应该是你需要的,“在这种情况下不工作”,你的意思是它根本不工作或不重定向回到上一页,无论它是什么?

如果事实上它根本不起作用,那可能是因为它依赖于$ _SERVER ['HTTP_REFERER']`,即一个php服务器变量告诉页面哪个页面重定向到它。但是,这并不总是取决于浏览器。我实施的解决方法是在 Unathorized 页面顶部放置一个小片段

$_SERVER['HTTP_REFERER'] = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];

这会“手动”将HTTP_REFER设置为当前网址,这是您想要的,因为在您从受保护的网页重定向到未经授权的网址后,网址不会更改。然后您可以使用Login?代码段的& redirectToPrior参数。

答案 1 :(得分:0)

感谢您的回答。

我尝试了一些东西,现在看来我只有一个问题就是我被重定向到未经授权的页面(登录页面),这样可以正常工作但登录后我没有被重定向到正确的受保护页面。

我做了不同的页面test1和test2。如果我登录,我总是被重定向到test1。

test1登录 - > TEST1

test2登录 - > TEST1

似乎& redirectToPrior = 1被& loginResourceId = 12覆盖。我用以下代码调用插件:

[[!Login? &loginTpl=`lgnLoginTpl` &logoutTpl=`lgnLogoutTpl` &errTpl=`lgnErrTpl` &logoutResourceId=`0` &loginResourceId=`12` &redirectToPrior=`1`]]

删除& loginResourceId = 12(ID 12为test1)根本不起作用,并将我重定向到我的404页面(主页)。 应该删除& loginResourceId = 12但是要插入什么?