0

我正在使用 CakePhp 2.3 并试图允许用户从主页创建一个帐户。我是 cakephp 新手,到目前为止,我已经按照此处描述的实现:http: //book.cakephp.org/2.0/en/tutorials-and-examples/blog-auth-example/auth.html

现在每次我访问索引页面(本地主机)时,我都会被重定向到用户/登录页面。我已经尝试过更改 AppsController 中的组件数组,但是如果我不包含 Auth 组件,那么当我在 USerController 中调用函数添加时,我会在非-对象错误。我不确定如何继续。现在我的 AppController 类看起来像这样:

class AppController extends Controller {

public $components = array(
'Session',
'Auth' => array(
    'loginRedirect' => array('controller' => 'posts', 'action' => 'index'),
    'logoutRedirect' => array('controller' => 'pages', 'action' => 'display', 'home'),
    'authorize' => array('Controller') // Added this line
)
);


 public function beforeFilter() {
    $this->Auth->allow('index', 'view');
 }
}

我想要做的就是能够从索引页面添加一个新的用户行。有什么想法或其他建议阅读吗?谢谢!!!

4

3 回答 3

0

如果您添加密钥“授权”,我认为您应该定义函数“isAuthorized”,如下所述:http: //book.cakephp.org/2.0/en/tutorials-and-examples/blog-auth-example/auth .html

您的默认索引页看起来如何?

如果是 PagesController 显示的默认“home.ctp”,则必须允许“显示”作为允许的操作:

$this->Auth->allow('index', 'view', 'display');

高温高压

于 2013-06-14T09:57:04.160 回答
0

转到 app->config-> routes.php 并将操作更改为索引,如@burzum 所说

然后去你的 UsersController 或 PostsController 无论你的控制器调用 beforeFilter 这样

 <?php
  class UsersController extends AppController {
public function beforeFilter() {
    parent::beforeFilter();

 }
 public function index(){

 }
于 2013-06-16T09:59:01.913 回答
0

使用路由器配置您的主页 /以使用帖子/索引操作。

Router::connect('/', array('controller' => 'posts', 'action' => 'index'));

另外我猜你没有在主页使用的任何控制器中调用 parent::beforeFilter() 。在 AppController 中允许操作是个坏主意,因为它只会引发安全问题。有一天,您需要一个不应该公开的索引并忘记它,或者您必须更改所有 allow() 调用。

但是,为什么您在帖子上下文中有登录名?那是错误的。与用户相关的操作应该属于正确的上下文:用户控制器和模型。

于 2013-06-13T15:15:02.137 回答