通过Magento的REST API是否有客户会话支持?


9

我正在努力将心愿单功能扩展到Magento的REST api。最好访问客户的会话。Magento是否支持通过REST访问客户的会话?


为什么需要会话访问?心愿单项目存储在数据库中,并具有对客户ID的引用。..或者也许我缺少了一些东西
马吕斯

因为我没有客户ID。
瑞尔(Ryre)2013年

2
好吧...接缝还不错...抱歉我无知:)
马吕斯

别担心!我的问题很简短,所以可能需要适当的解释。
Ryre

正如我在Magento REST API文档中所读到的那样,无法通过REST访问会话。您是否考虑过使用oAuth?
AnnaVölkl2013年

Answers:


5

如我上面的评论中所述,我建议为用户登录提供oAuth以获得对customerID的访问权限。要回答您的问题:否,无法访问客户会话。

流程如下:

  1. 用户访问您要提供愿望清单功能的第三方网站
  2. 用户请求愿望清单/愿望清单功能(通过将新项目添加到愿望清单,显示其愿望清单等)
  3. 用户通过您的magento商店中的oAuth登录
  4. 从oAuth检索客户ID
  5. 继续您的愿望清单功能

对于用户授权,建议您遵循本页上的“获取未经授权的请求令牌”和“用户授权”部分。


您的答案是第一个提供可行解决方案的答案!
瑞尔(Ryre)2013年

从oAuth获取客户ID的可接受方式是什么?我在他们的文档中的任何地方都看不到这种功能。
Stepan Mazurov 2013年

我已经知道了。对于其他遇到相同问题的人,请确保您的“客户”角色有权访问api
Stepan Mazurov 2013年

您好@AnnaVölkl,我如何在magento REST api中获得客户ID?因为当我在标头中传递客户令牌时,我需要客户标识,该客户令牌属于magento 2中的特定客户令牌
Aditya Shah,

我的产品API返回了产品,如果我尝试与客户联系时遇到错误,我的网址:192.168.1.65/anusthana/api/rest/customers错误:snag.gy/0jbhTr.jpg 您能帮我吗@Anna
zus

6

没有。

客户会话与浏览客户拥有的前端cookie相关联。如果您正在使用基于文件的会话,那么这些将存储在var / sessions /下-如果您将数据库用作会话存储,则将其存储在core_session中。

无论如何,要访问它,您都需要从客户那里知道session_id,根据设计,该session_id仅应位于浏览器和服务器之间。* 1)

如上面评论中所建议,一种更好的方法是找出您确实可以为客户使用的信息(customer_id,电子邮件地址),然后通过该信息访问愿望清单。

要记住的另一件事是,您建立用于与API进行通信的会话与客户拥有的会话是分开的。

总的来说,如果发布您希望通过列出当前限制的愿望清单来实现的目标,我认为您会得到一个更具可行性的答案。

* 1)您可能能够读取当前使用的cookie会话并将其保存到数据库中以进行进一步处理,但是您将再次需要一些其他信息将其与当前尝试实现的逻辑联系在一起,所以我不在这里看到它的任何用途。


感谢您的出色回答。我的最终目标,通过REST是访问客户数据,客户看到当登录到前端:订单历史记录,保存的地址,等等
Ryre

当然,更多的上下文将有所帮助。哪个应用程序发出这些请求?我的猜测是,您有一个非Magento网站,您想在其中显示Magento数据,但您的问题并不清楚,可能完全是其他内容。OAuth建议涉及客户需要执行的操作。其他方法包括在两个系统之间共享会话(例如查看各种wordpress集成)。
克里斯托夫在Fooman,2013年

您的猜测已经接近了!我正在帮助扩展iPhone应用程序的基本REST服务。前端oauth解决了我遇到的问题;很抱歉没有提出更明确的问题。
瑞尔(Ryre)2013年

1

我认为您正在寻找的是REST API和Magento的OAuth的混合体。使用OAuth,前端用户可以登录Magento环境,为您的(第三方)应用程序提供访问权限,并访问其客户数据(例如订单历史记录)。

据我所知,这与使用API​​进行的客户会话非常接近。

查看有关该主题的Magento文档以及Inchoo的这篇不错的文章

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.