【问题标题】:Is it OK to call authentication methods from the view in Codeigniter?从 Codeigniter 中的视图调用身份验证方法是否可以?
【发布时间】:2013-04-10 09:05:55
【问题描述】:

我正在使用带有 Codeigniter 的 TankAuth,我想知道是否可以从视图调用库特定的方法,而不是从控制器传递它们?例如,

$this->tank_auth->is_logged_in() 

从视图调用输出动态 HTML 比从控制器传递变量方便得多。然而,它安全吗?这是可接受的做法吗?

【问题讨论】:

  • 最好从控制器中设置模板变量 $user (例如),当用户未登录时它等于 false,或者当他登录时带有用户信息的数组:) 这样你会能够知道它是否虚假或使用他的用户数据..
  • 正如@Svetlio 建议的那样,最好在控制器中执行此操作,并且我认为总是会更好(如果您使用一些复杂的身份验证结构)将其放入模型中并仅制作控制器将信息传递给它,然后获得合法的结果。控制器不是数据警察:survivethedeepend.com/zendframeworkbook/en/1.0/…(它不仅适用于 ZF,还适用于所有其他框架,恕我直言)

标签: php codeigniter authentication tankauth


【解决方案1】:

没有理由不能这样做,但它违反了 MVC 概念。您可以在扩展控制器的构造函数中设置这些类型的东西,这样您就可以在所有控制器中使用 $is_logged_in 等变量,以使其更容易。

【讨论】:

  • 这不是“反对 MVC 概念”,只是反对大多数不理解 MVC 的框架想要的。视图可以访问可视化应用程序的当前状态所需的任何内容。如果这意味着在对象上调用方法,那很好。它只是不应该对这些对象做任何 "active" 操作。控制器必须在变量中设置所有内容,这完全是反 MVC 模式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-29
  • 2019-10-20
  • 1970-01-01
  • 2012-12-09
  • 2017-02-20
  • 2015-08-06
  • 1970-01-01
相关资源
最近更新 更多