会话到期后重定向到yii中的登录页面

时间:2014-07-11 06:45:35

标签: session redirect login

我正在开发一个具有多个级别和模块的Web应用程序。在应用程序中一切正常。

如果用户在登录后没有工作,他们会使应用程序处于登录状态,并在1小时后尝试使用它,然后会话到期并且系统状态变量丢失。因此,在这种情况下,应用程序不会重定向到登录页面(站点/登录),这是糟糕的用户体验。

我无法确定问题所在。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

解决这个问题的一种方法是让控制器不直接从CController扩展。

你可以让一个中间控制器说ModuleController扩展CController。 然后所有控制器都扩展该控制器。

在ModuleController中覆盖beforeAction()并检查是否设置了会话,如果没有则重定向到登录。 因此,每次用户尝试访问页面时,它将首先检查会话是否已设置。你可以使用ACL来更好地微调这一点。

这种方法可以应用于Yii开发中的各种问题。

希望这有帮助!