首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在登录后重定向到Routing.prefixes页面?

如何在登录后重定向到Routing.prefixes页面?
EN

Stack Overflow用户
提问于 2011-04-28 23:18:28
回答 2查看 1.9K关注 0票数 0

我正在使用Users plugin来处理用户。当用户想要访问需要登录的普通页面时,他们被重定向到登录页面,成功登录后被重定向到该页面。这一切都很好,这是意料之中的。

我的问题是重定向到Routing.prefixes后面的页面,在那里用户被发送到登录页面,但在成功登录后被重定向到默认的重定向页面($this->Auth->loginRedirect)。

如何让Cake重定向到用户请求的位于Routing.prefix后面的页面?我想这是我遗漏的一个配置,或者?

在config.php中,我有Configure::write('Routing.prefixes', array('admin'));

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-29 11:42:26

我找到了一个解决方案。

在AppController::beforeFilter中,这将修复它:

代码语言:javascript
复制
// make sure only admin can access admin area
if (isset($this->params['admin']) && $this->params['admin']) {
    if ($this->Auth->user() && !$this->Auth->user('is_admin')) {
        $this->redirect('/login');
    }
}

票数 0
EN

Stack Overflow用户

发布于 2011-04-29 01:58:43

你只需要覆盖Cake的“自动”登录过程。

在你的app_CONTROLER.php的beforeFilter()中:

代码语言:javascript
复制
$this->Auth->autoRedirect = false;

创建登录并覆盖app_users_controller ()函数:

代码语言:javascript
复制
App::import('Controller', 'Users.Users');
AppUsersController extends UsersController {

    function login() {
        if(isset($this->data)) {
            if($this->Auth->login($this->data)) {
                $this->redirect(...)
            }
        }   
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5820943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档