【问题标题】:How to force customer to log out in Magento如何强制客户在 Magento 中注销
【发布时间】:2018-04-25 18:32:35
【问题描述】:

有什么方法可以强制客户退出?用例是在后端更改客户组后,我需要强制他注销并重新登录以查看他的新组的新价格。我不是要注销当前用户,所以不能使用Mage::getSingleton('customer/session')->logout()

我查看了会话,但似乎无法从客户 ID 启动会话

我尝试的是直接设置客户ID,但它不起作用

$session = Mage::getModel('customer/session')->loginById(1234)->logout();

【问题讨论】:

  • 你试试这个 Mage::getSingleton('customer/session')->logout(); ?
  • @SiderTopalov 我正在尝试以编程方式强制前端的另一个用户注销,而不是当前的后端用户
  • 检查that 我想这就是你想要的?
  • 您是否可以在更改用户组后将用户重定向到主页(大概是当他们尝试访问属于特定的页面时,您正在检查他们是否确实有权访问该页面)
  • @SpacePhoenix 这与页面权限无关,这是因为我对不同的组有不同的价格,并且只有在用户注销并重新登录后才会刷新

标签: php session magento magento-1.9


【解决方案1】:

这是您查找和删除 Magento 1 客户会话文件的方法。

  1. 通过 Magento 管理面板查找客户的 ID,例如.../customer/edit/id/666/ => 666
  2. 通过 SSH 连接到您的服务器
  3. 将当前目录更改为 MAGENTO_ROOT
  4. 列出Magento_Root/var/session/下的会话文件 (将 666 替换为实际的客户 ID)
    grep -lr "\"customer_id\";s:5:\"666\"" ./var/session/
    
  5. 删除所有列出的文件。

第 4 步和第 5 步的单线,谨慎使用! (将 666 替换为实际的客户 ID):

grep -lr "\"customer_id\";s:5:\"666\"" ./var/session/ | xargs rm

【讨论】:

    【解决方案2】:

    您可以使用Mage::getSingleton('customer/session')->logout() 或将客户重定向到以下网址

    /customer/account/logout/
    

    How to force magento to logout

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-12
      • 2013-12-04
      • 2021-03-25
      • 2019-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多