我的控制器中有以下代码段:
public function beforeFilter() {
$this->autoRender = false;
...
$this->Auth->allow('email');
}
public function email() {
...
$this->show();
...
}
public function show() {
...
}
我的show
操作需要身份验证,但email
不需要。
当我的hadoop作业完成时,email
动作表示接受jobEndNotifier的通知,因此我无法在该页面上进行身份验证,因为它将被hadoop访问。
(https://hadoop.apache.org/docs/r1.2.1/api/org/apache/hadoop/mapred/JobEndNotifier.html)
我的show
操作基本上为完成的hadoop作业生成并可视化报告,当我的作业完成时,我想在系统中自动生成它们(缓存它们),所以稍后当用户访问该页面时,它将从缓存加载,并将更快。这就是我从show
操作中调用email
操作的原因。
当然,我可以在不登录的情况下访问email
操作,但是当我从show
调用email
操作时,它会将我重定向到主页,说明您必须登录。
简而言之:如果我从show
操作中调用email
操作,我可以设置它,它不需要身份验证吗?由于页面未呈现,因此仅进行计算。
提前致谢。
答案 0 :(得分:-1)
按照你的逻辑, $这 - > Auth->允许('电子邮件&#39); 绕过电子邮件方法的身份验证,
您可以设置为在电子邮件功能中绕过显示,例如
public function beforeFilter() {
$this->autoRender = false;
...
$this->Auth->allow('email');
}
public function email() {
...
$this->Auth->allow('show'); /* allow show here **/
$this->show();
...
}
public function show() {
...
}