2016-10-04 64 views
0

我已经和CodeIgniter一起工作了两天,我喜欢它。对于初学者来说,它是创建Web应用程序的绝佳框架。如何使用Tank auth保护未注册用户的内容?

我使用Tank auth来设置登录系统,到目前为止我已经设法完成同样的事情。

但有一件事我不明白。我一直在研究坦克认证代码和谷歌搜索,但仍然无法围绕这个非常简单的问题 - 我如何保护我的网站内容未注册的用户? CodeIgniter中使用的方法是什么?

可以说例如我有一个控制器产品与方法显示。通过输入www.mywebsite.com/index.php/products/show,我可以在我的网站上看到它们。现在我该如何禁止未注册的用户访问(请参阅)我的产品?

我明白,这很可能是愚蠢的问题,但我不能没有体面的理解这一点继续前进。虽然它是基本的谷歌没有答案...(或我不知道如何精确提问)

回答

0

假设你有坦克认证安装和配置正确,你可以简单地重定向某人登录屏幕,如果他们不是' t已经登录了任何特定的控制器功能。

if (!$this->tank_auth->is_logged_in()) redirect('auth/login'); 

如果你使用它确保只有在用户登录的任何功能的启动可以加载它,因为任何其他的用户将被重定向了。同样,如果您想锁定整个控制器,只需将其放置在构造函数中即可。

与Tank Auth捆绑在一起的欢迎控制器显示了一个很好的例子,因为只有登录用户才能看到“您现在登录”页面。

+0

谢谢,这是一个很好的答案!只需要确定: 我希望我的导航菜单位于主页顶部,仅在用户登录时才显示“产品”。我在我的页眉视图中创建了导航菜单,并且我有用于处理静态页面的控制器页面。这是否意味着我必须创建两个视图header_logged和header_notlogged并添加 'if(!$ this-> tank_auth-> is_logged_in()){this-> load-> view('templates/header_logged',$数据); } else { $ this-> load-> view('templates/header_notlogged',$ data); }' 我的控制器页面? –

+0

你可以这样做,如果你想严格控制你的视图中的控制器风格的逻辑,但这将是那种用法,我只是把这个if语句放在视图中,如果它只是做一个稍微改变菜单就是这样。因此,您的视图可能只有'<?php if($ this-> tank_auth-> is_logged_in(){?> * HTML for Products菜单项* '无论您将Products项添加到菜单 –