2011-02-01 259 views
3

基本上,我想知道的是,如果您可以使用Auth组件来允许某些扩展(JSON/HTML)?CakePHP Auth允许JSON扩展

基本上,可以说我们有一个动作,动作就是索引。在这个动作中,我们所做的只是列表作者(用户)。所以url是http://somewebsite.com/authors/index。如果我们访问该网址,内容类型将为HTML,应限制为登录用户(管理员),以便他们可以拥有编辑/删除按钮。但是,当您将.json扩展名放在末尾时,我们也会使用此操作来呈现json,因此url将为http://somewebsite.com/authors/index.json。在这种情况下,您不需要登录,因为您只想访问该信息。

那么,Auth组件是否可以允许某些扩展,这是最好的方法吗?

感谢和干杯!

回答

3

沿着这些线路的东西应该工作(包括明确“解锁”只有特定的方法):

public function beforeFilter() { 
    $methods = array('index', 'foo', 'bar'); 

    // please forgive the terrible indentation 
    if (in_array($this->action, $methods) && 
     isset($this->params['ext']) && $this->params['ext'] == 'json' 
    ) { 
     $this->Auth->allow($this->action); 
    } 
} 
+0

你会怎么做,如果有不是一个“分机” PARAM? – alvincrespo 2011-02-02 04:36:53