Questions tagged «session»

表示有关Magento中会话管理的问题。

7
Magento 2后端会话超时
在Magento 1.x中,后端会话超时是通过以下方式设置的: Backend -> System -> Configuration -> Admin -> Security -> Session Lifetime (seconds) 最初,我的问题是如何在Magento 2.0中进行设置,但显然Magento 2.0与Magento 2.1之间存在差异 对于Magento 2.0:Arkadii Chyzhov指出了设置方法(请参见下文)。 对于Magento 2.1:fschmengler建议了一种解决方案(请参见下文)。 但是,M 2.1似乎无法通过后端提供直接的解决方案。有人可以提出M 2.1的其他解决方案吗?

10
我该如何处理过多的会话文件?
我是几个拥有Magento站点的服务器的系统管理员,有时它们会填充会话文件。 有人告诉我,在Magento中无法管理这些文件,我认为它们的临时使用意味着不能将其关闭,但Magento无法处理这些文件的删除似乎很奇怪文件? 我的解决方案是每晚执行一次crontab,执行类似这样的操作,find /path/to/magento/sessions/ -name "sess*" -type f -delete但至少可以说这不太礼貌。 处理这些的最佳方法是什么?

8
购物车删除所有商品/购物车会话清除
当您查看购物车或去结帐时,我突然管理的一个网站(可能是2周前-根据GA统计信息,现在才报告)开始放下购物车物品。 顶部的“迷你购物车”会在下拉菜单中显示商品,直到您浏览到购物车/结帐,然后您最终在购物车上看到“购物车中没有商品”消息。 似乎是一个会话问题。登录时不会发生。 删除了“系统->网络->会话验证设置”中的所有会话验证选项,并启用了“在前端使用SID”选项。这确实解决了问题,但是由于这些设置在过去3个月中没有更改,因此我知道存在一些潜在问题。 那么这指向带有酸痛问题的问题吗?该网站以某种方式失去了它所在的商店ID,并删除了会话/购物车数据?也许是某些模块的某些观察者/事件/重写。 我无法在本地开发人员或UAT服务器上复制该问题。UAT上的数据库是从生效日期算起的2周,因此这可能指向数据库问题/设置吗? 我正在尝试的事情:我正忙于将当前的实时数据库移至UAT以获取最新信息,以查看是否可以在此处复制该问题。完成后将更新。 一旦我可以在非活动区域复制问题,就可以系统地禁用模块,看看商店ID是否有问题(从MageMonkey和sweettooth开始,因为它们是在2周前更新的) 问题是-我还能尝试什么?是否有任何指向我可以在其中闯入一些断点并逐步执行代码的指针,以查看是否可以跟踪此问题? 没有安装额外的缓存系统,例如清漆或内存缓存。服务器是标准的cpanel安装。在uat上测试我禁用了所有缓存。 进一步更新:当我使用默认主题时,似乎无法复制。我正在系统地将主题覆盖文件夹移回。 我还使用git来回溯代码,每个哈希都存在问题。 更新:自从我有时间花时间以来,已经有一段时间了。高工作量。 我将会话移至基于文件的会话,问题已消失。由于客户端不打算在不久的将来使用多台服务器,并且由于我的工作量,该留在那儿了。以后很可能会再咬我。 magento支持建议该问题与扩展会话类的甜食模块有关,但是我已禁用了该模块,并且问题仍然存在。 当我得到更多结果时将更新。
27 checkout  session  cart 


2
Magento网站作为子域跨多个实例拆分的正确cookie配置是什么?
问题 大型站点将Magento的单独实例用于不同的地理区域,因此业务隔离。例: site.com north.site.com south.site.com east.site.com west.site.com 用户可以访问根目录+区域站点,直接在区域站点上登录,或使用其区域凭据登录(site.com)(我们具有身份验证器+重定向)。 某些以前无法登录后无法登录,并且没有错误反馈。我们可以复制这样的故障,即有两个具有相同名称但域不同的cookie。例: 名称:frontend,域:.site.com 名称:frontend,域:.north.site.com 删除Cookie可解决大多数浏览器中的问题。Cookie似乎卡在了某些浏览器中,除了等待它们过期(对用户而言很糟糕)之外,我们感到很困惑。 我们尝试了什么 最初,对于所有站点,我们的配置均为空白(如下所示)。这引发了问题。据我了解,我们需要将所有站点的域显式设置为“ .site.com”,以便该名称/域只能存在一个cookie。 这是否解决了Magento的问题,即不知道哪个“前端” cookie是正确的-还是有首选的配置? 问题 对于多域设置,Magento管理员中正确的cookie配置是什么? 请参阅:“系统>配置> Web>会话Cookie管理”


4
Magento 1 EE v 1.14.3.x(和CE 1.9.3.x)中的会话验证失败
我正在照顾一个Magento商店,每天有400-500位访客和40-50个订单。最近系统从Magento EE 1.14.2.4升级到Magento EE 1.14.3.2,我注意到日志中有一些奇怪的异常: exception 'Mage_Core_Model_Session_Exception' in /var/www/.../app/code/core/Mage/Core/Model/Session/Abstract/Varien.php:418 我正在追逐该异常,并且我确实知道该异常已被触发,因为以下会话验证代码无法验证会话: class Mage_Core_Model_Session_Abstract_Varien extends Varien_Object { // ... protected function _validate() { // ... if ($this->useValidateSessionExpire() && isset($sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP]) && $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] < time() ) { Magento使用最新发行版将此if块添加到文件中。这显然是一种制动变化,请参阅下面的更多详细信息。 例外情况经常发生,例如每天十几次。但是除非我在上面的条件中完全符合条件,否则我无法重新创建导致异常的条件。例外最常见于产品详细信息页面和一页结帐的最后一步。该商店是b2b商店,用户必须登录才能查看产品页面或能够结帐,这意味着会话无效/过期时,用户将被重定向到登录页面。目前,对我来说更重要的是在结帐时解决此问题。 从用户的角度来看,发生了什么:用户填充购物车,继续进行结帐并到达最后一步,然后他/她单击“提交订单”按钮,但没有任何反应。在后台,Magento的JS执行AJAX请求,并且JS希望收到JSON,但是如果发生此错误,则会返回登录页面的HTML,JavaScript无法解析该HTML,并且它什么也不做。这对于用户而言超级混乱。 好吧,这不是完整的用户方案,我们联系了用户,他们告诉我们,他们在填充购物车和提交订单之间等待了几天,这实际上很难弄清楚,因为人们根本不记得这一点。 PHP会话生存期-350000(以秒为单位约4天)Cookie生存期-345600(4天) 这是实际的问题: 我如何找出导致这种异常的用户行为? 更新 到目前为止,我知道根据所提出的请求,以下类中会发生异常,对我而言,这并不意味着没有任何异常。 /catalogsearch/result/?q=… Mage_Core_Model_Session /checkout/cart/ Mage_Core_Model_Session /checkout/onepage/saveOrder/… Mage_Rss_Model_Session /customer/account/loginPost/ Mage_Core_Model_Session …

8
“无效的表单密钥。请刷新页面”-无法登录到管理面板
我定期访问我的网站以确保其正常工作,并注意到没有出现产品图片,并认为这是索引缓存的问题,我尝试登录到管理面板并收到错误消息: “无效的表单密钥。请刷新页面” 其他症状是客户无法将产品添加到购物车,并且性能极慢。 日志中没有错误(/ var / logs) 我应该执行哪些其他步骤来解决此问题?

1
长时间运行的管理页面请求阻止其他请求
如果我登录到Magento的后端并执行一些需要很长时间的任务(在大型目录上进行全局搜索,长时间运行的数据流等),则我的Web浏览器将拒绝仅在该浏览器中加载其他管理页面。为什么会发生这种情况,并且有任何已知的解决方法科学? 也就是说,如果我 登录到Magento的仪表板页面 使用任何Magento管理页面打开第二个标签页 在第一个标签中执行长时间运行的全局搜索(以sleep(30)开头的调用模拟globalSearchAction) 尝试重新加载第二个标签 预期的行为:第二个选项卡立即加载页面内容 实际行为:只有长时间运行的全局搜索完成后,才会加载第二个选项卡 有谁知道具体为什么会这样?(我的猜测是Magento管理控制台请求锁定了Magento需要引导的某些资源,但我不知道那是什么) 有人知道修复/解决方法吗?

1
为什么比较功能链接到(log)访客ID?
启动项目时,我要做的第一件事是询问客户是否需要用户登录他的网站。在技​​术术语Mage_Log模块中。到目前为止,在所有情况下我都得到了答案: 不会。我们将使用Google Analytics(分析)。 下一个问题是“您要比较产品吗?”。我问这些问题是因为日志表往往会变得很大,而且网站变得很慢。因此,我想避免解决速度问题。 我问的第二个问题是因为“比较产品”部分取决于访客客户的日志。请参见addAction产品比较控制器的: if ($productId && (Mage::getSingleton('log/visitor')->getId() || Mage::getSingleton('customer/session')->isLoggedIn()) ) 因此,如果客户要比较产品,则无法禁用日志记录。 我的意思是我可以搜索扩展程序或构建扩展程序,但是真正的问题是:为什么比较功能链接到访问者ID?有什么好的结果吗?通过引用会话中的引用ID,来宾引用可以很好地发挥作用。为什么比较产品不一样?
16 session  log  compare 

4
已解决-Magento 2-无法登录到管理员(无错误消息),停留在登录屏幕上
这不是一个问题,而是对一个很老但又经常发生的问题的解答。我记得在我设置Magento 1.9的日子里在此方面挣扎,而这次在Magento 2.1.4上又发生了。我完全忘记了我当时是如何解决的,所以这次我在这里记录我的答案,以防万一有人需要它。 问题陈述 基本上,您是在设置Magento 2.1商店,满足所有服务器要求,添加了SSL,设置了网站,商店和商店视图并填写了商店配置,只是突然意识到您无法再登录到管理面板。没有错误,浏览器控制台没有任何问题,Chrome / Firefox浏览器也没有问题。您清除会话并缓存也无济于事。您找到的答案一直指向会话和缓存设置,但是您确实遵循了文档,但仍然无法使用。

1
Mage_Core_Model_Session_Abstract_Varien :: start的响应时间长
因此,我在许多站点上都注意到了New Relic,由于Mage_Core_Model_Session_Abstract_Varien :: start导致了很多长页面加载。我做了一些研究,还没有真正看到其他人在谈论这个。 我们使用Nginx,PHP FPM,Redis进行缓存,并使用Memcache进行会话。我的一些想法是,也许这是永久的事情,看来加载会话是问题所在。或以某种方式有一些自定义代码将大量数据添加到会话中,从而导致大量会话。 我对会话及其如何管理不了解,但是我发现一些文章讨论会话锁定。但是我认为人们不会同时打开这么多页面。 其中一些负载约为20到30秒。我只是想知道是否还有其他人注意到了这一点,或者对如何分析由于会话而产生的这类长请求有更多的了解。

2
从后端在前端自动登录
请参阅以下情形。 我有一些自定义模块,允许前端用户对某些自定义实体执行某些操作。(细节不是很重要)。 要求管理员应该能够使用客户帐户(没有密码)在前端登录,并能够为客户执行这些操作。 由于您不能使用后端的前端会话,并且我不想为前端创建永久的自动登录链接,因为这可能是一个很大的安全漏洞,这就是我到目前为止所做的。 为客户实体添加一个空属性。(叫它login_key) 在客户编辑页面的后端添加一个按钮,该按钮重定向到管理页面,在该页面中生成一个随机字符串并将其保存在属性中login_key。 在同一操作中,我将管理员重定向到这样的前端URL autologin/index/index/customer_id/7/login_key/ajkshdkjah123123(在上一步中生成的值)。 在前端网址中,如果客户ID与login_key特定客户匹配,则我在会话中设置了客户对象(如已登录)并删除了login_key该对象,因此该网址将来将无法使用。 这可以正常工作。我的意思是,我以所选客户的身份登录,并且用于自动登录的链接第二次不起作用。 不利的一面是,如果2个管理员大约同时单击“自动登录”按钮,则一个人将无法登录,但这是可以接受的风险。 我主要担心的是,这也可能是一个(不是那个)重大的安全问题。有人可以看到这种方法有问题吗?还是建议一个更好的? 可以忽略客户帐户可以由网站分隔的事实。这并不重要,也可以轻松管理。

3
Magento 2:同步后端和前端状态/缓存
Magento 2是否有任何系统或抽象来管理后端和前端上的本地存储之间的状态? 我正在尝试通过重定向URL移植用于恢复用户废弃的购物车的功能。以简化形式,URL类似 http://magento.example.com/restore/the/cart?identifier=sdkfjh48v237g5 会根据标识符中的编码quote_id将报价加载到当前用户的购物车中。 在Magento 1中,这相对简单-您只需要使用正确的报价ID更新用户的Checkout会话信息。但是,Magento 2加剧了本地存储的不足。 Magento 2前端javascript应用程序似乎在浏览器的本地存储数据库中缓存信息。这包括有关建造迷你车的信息。这意味着即使最终用户程序员(me)设法在后端更改会话Session ID,微型购物车仍会显示旧的购物车数据。 这只是一个问题的一个示例,该问题源于不了解(或拥有一个)用于管理后端和前端的应用程序状态的API。对于我的特定问题,我的端点渲染了一个包含一些JavaScript的HTML页面,手动清除了本地存储,然后将用户重定向到另一个页面-但这感觉像是一桩骇人的hack。 Magento 2中是否有API用于管理前端和后端之间的数据? 有一种向整个系统发出信号的标准方法,即在后端处理期间,您做了某些事情使得有必要使前端本地存储缓存无效? 有没有一种技术可以将新的RequireJS模块注入到自动运行的页面中,并且可以在其他JavaScript应用程序访问它之前操纵本地存储?

3
了解Magento注册表
我一直想知道,所有注册表数据都存储在Magento中吗? 我知道,即使单例对象也存储在注册表中。注册表只是Mage类的静态数组变量。 我有几个问题可以消除我的困惑: 注册表对于不同的用户是否有所不同?我的意思是它是基于每个用户(每个HTTP请求)创建的吗? 例如, Mage::register('foo', 'Hello World'); //set a value for foo Mage::registry('foo'); //will this return hello world for all HTTP users ? 注册表数据是否存储在会话中?如果不是,Magento将如何识别哪个用户调用了注册表数据? 我已经阅读了Alan Storm的博客文章,以及他在StackOverFlow上对此的回答。但是我无法消除混乱。如果我认为我的基础知识搞砸了,请纠正我。谢谢

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.