cakephp 3和注销混乱

时间:2017-03-03 19:32:54

标签: php cakephp cakephp-3.0 auth0

我无法解决事情是否按预期发挥作用。

我有一个简单的cakephp3,cake-auth0(https://github.com/jsoftb/auth0)的实现,我正在使用auth0登录表单。

此流程运行正常。

example.com/users/login - >形式 - > my-domain.auth0.com - > example.com/users/login?code=secret

.mobile-nav-icon {
    padding: 1.25em;
}

.mobile-nav-icon:hover, .mobile-nav-icon:focus {
    background: #40514f;
    color: #fff;
}

.mobile-nav {
    position: relative;
    display: inline-block;
    float: right;
    overflow: visible;
}

.mobile-nav-drop {
    display: none;
    position: absolute;
    right: 0;
    background: #ccc;
    min-width: 10em;
    box-shadow: 0 0 .25em 0 rgba(0,0,0,.2);
}

.show {
    display: block;
}

.mobile-nav-drop a {
    color: #000;
    padding: 1em;
    display: block;
}

.mobile-nav-drop a:hover {
    background: #aaa;
}

记录用户是我遇到问题的地方。

example.com/users/logout - > auth0-domain(kill cookie) - > example.com

function mobileNavDrop() {
    document.getElementById('mobileNavDrop').classList.toggle('show');
}

window.onclick = function(event) {
    if (!event.target.matches('.mobile-nav-icon')) {
        var dropdowns = document.getElementsByClassName('mobile-nav-drop');
        var i;
        for (i = 0; i < dropdowns.length; i++) {
            var openDropdown = dropdowns[i];
            if (openDropdown.classList.contains('show')) {
                openDropdown.classList.remove('show');
            }
        }
    }
};

这成功登录和退出auth0就好了。 然而,我仍然记录在蛋糕中,它让我有点邋.. 我的登录页面有一些会话用户输出显示我已登录,我可以访问页面example.com/users。我尚未登录时无法查看。

如果有帮助,我还没有创建任何与用户一起使用的数据库内容。

如果没有使用php进行残酷和核算所有会话/ cookie,其他人都有任何想法吗?

更新:通过代码挖掘了很多东西。 Cake的vanilla Authcomponent :: logout并没有做任何事情。我设法通过手动杀死某种类型的 会话来获得对我有用的东西。

我会离开这个,因为我知道有些大师会在某个时候出现。

我能够像这样实现退出(蛋糕):

$auth_code = $this->request->query('code', null);
if(!is_null($auth_code)) {
  $user = $this->Auth->identify();
  if($user) {
    $this->Auth->setUser($user);
    return $this->redirect($this->Auth->redirectUrl()); // example.com/
  }
}

调用AuthComponent的注销功能并保存响应url字符串。

销毁请求会话,因为注销没有。

重定向。

0 个答案:

没有答案