api - 以Magento为主要工具,并创建一个单一登录即可与其他第三方软件集成

标签 api magento session integration

这是我很长时间以来一直在努力的事情。它首先从Prestashop开始,与我为整个网站制作的其他脚本或难题的一部分集成。我目前仍在使用Prestashop作为我的网上商店,但此后切换到了Magento。

我选择使用Magento是因为它具有复杂的灵活性,并且因为总体而言,我认为它是最佳的解决方案,最佳的支持和最佳的整体电子商务脚本。

话虽如此,我在Prestashop中遇到的相同问题似乎也一样,我将继续尝试在各个方面实现完美和谐。

我将Magento设置为网站的主要部分,并且在Magento的子文件夹中,将Wordpress安装在名为“articles”的文件夹中,并且我也选择FluxBB作为我的消息论坛,因为它很简单,没有废话我可能不太在意的extra肿的额外功能的负载是在一个名为“论坛”的子文件夹中。

至此,我们知道Magento,Wordpress和FluxBB都有自己的用户管理方式。创建,管理和跟踪它们。

我想做的是找到将这三个及三个以上因素组合在一起的最佳方法,以使我的网站为客户带来尽可能流畅和功能正常的体验。在给有才华和帮助的Alan Storm发电子邮件之后,他告诉我他所知道的最佳解决方案是建立一个他们都指向的第三方用户管理,并管理客户身份验证。我确实相信他的想法可能是最好的,但是我想将其放在StackOverFlow上,我也可以将其发布在Magento上,以吸引广泛的magento开发人员和喜欢挑战的聪明人。

我有几种想法,可能没有一个可行,有的可能成功了一半,或者只是一个可行的事情。但是首先让我告诉你我到目前为止所取得的成就。我已经完成了必要的步骤,以集成我的页眉和页脚的总体设计,因此实质上Wordpress和FluxBB已包装并包含在Magento的外部设计层中。因此,话虽如此,我还说了“Hello Guest”或“Hello User”,使Magento可以在该 session 中检查 session 以查看用户是否登录到Magento。这是我到达停止点的地方,因为我超出了自己的深度,并希望获得帮助,无论是出于纯粹的挑战我们共同创造的东西,还是有人说如果我付钱给他们,他们都会帮助我,无论我采用哪种方式完成。如果并且何时获得了代码,我是否想通过集体协助的方式支付费用,我想让其他人免费使用该概念,将其用于自己的项目。

脑屁#1:

调整Wordpress和FluxBB的用户表,使其更符合Magento的结构,例如密码和用户名/电子邮件登录部分。其余字段可以分别保留,以保持职位计数等。

从那里,我想找出在从注册中创建客户时,Magento中的哪个类将实际输入数据库中。当我找到该代码时,我想在其上扩展将用户凭据复制到Wordpress和FluxBB数据库的其他两个表中的功能。如果有必要,可以将其添加到Wordpress和FluxBB中,这是一个更好的主意,是的,我的意思是Magento创建的实际加密密码,我也希望此方法也安全。

从那里开始,当我们知道某个客户向Magento注册时,数据已复制到其他两个表中,那么我们至少已经取得了进展,该进展是否会真正发挥作用,尚待确定。

然后,我们可以通过Wordpress和FluxBB以任何方式禁用登录/注销和注册链接,因为不再需要它们,因为我们希望用户通过Magento一个位置进行注册,登录和注销。

然后是我眼中有趣的部分,在他们订购产品,审查wordpress文章并可能发表评论,发送给 friend 等时,在整个网站上进行该死的 session ,以及在其中发布主题,回复等。 FluxBB的容量。

对我来说,这是创建字段或从Magento的客户注册添加数据的地方,我可以检查它们是否已经登录到Magento,然后从那里我们可以使它进行验证。这可能是过度杀戮,或者可能只是需要完成的方式。但是对我来说,如果凭据位于所有三个数据库中,则应该可以通过更改Wordpress和FluxBB中的代码或添加代码来对其进行验证。是的,我知道,如果客户希望更改其信息,我们还必须对配置文件编辑和密码编辑进行某些处理。

但这是我对此的第一个想法,无论这是否是正确的决定,我想从这里广博的知识中听到,他们比Magento,PHP和其他任何事物都拥有更多的经验和知识。

脑放屁#2

由于Magento的复杂性及其整体设置,这种不合逻辑的想法对我来说似乎完全是一个外部因素。

但是,其想法是删除/编辑Wordpress和FluxBB(以及任何其他第三方软件),以至于几乎忽略了它自己的注册,登录,注销,编辑,并向Magento寻求其凭据并建立新客户的方法。本质上使它们成为Magento的超大模块。

我只知道Magento的设置方式将被模块化,并且它的复杂性似乎需要更多的编码和故障排除。

脑子屁#3

转储Wordpress和FluxBB,并看一下Magento Connection Store中的模块,这些模块几乎具有我需要的所有功能,并且可以向它们添加缺少的内容,并且不会与尝试集成第三方软件混为一谈。

我喜欢Wordpress,我认为至少在我花了几个小时查看与CMS / News相关的所有可用模块之后,才用模块复制它。 FluxBB如果有人已经有了使用phpBB或vBulletin或SimpleMachines的可行解决方案,我可以选择接受还是放弃。我宁愿它是免费的开源软件,不是因为我是一个廉价的溜冰者,而是因为我尽可能地支持开源。

脑蛋#4

这可以是一个cookie吗,但是仅当它们允许cookie时才有效,或者可以某种方式添加到 session 中以允许事物通过,但是Magento设置了不同的 session ,或者也允许您使它们彼此崩溃,因此可能根本不是一个想法,或者也可能是一个想法。

我知道我没有举例说明我尝试过的事情,我查看过的文件或与此相关的任何东西,我很抱歉,我提供了一些相关的链接,但到目前为止没有发现与我要完成的任务完全匹配的东西。而且我尝试将事情合并在一起,带来一些有趣的灾难性结果。

链接示例?:
http://www.magentocommerce.com/wiki/doc/webservices-api/api/customer#customer.create
http://www.magentogarden.com/blog/how-are-passwords-encrypted-in-magento.html
http://www.nicksays.co.uk/magento_events_cheat_sheet/
http://www.magentocommerce.com/wiki/5_-_modules_and_development/customers_and_accounts/registration_fields
How to access Magento customer's session from outside Magento?

对此的任何帮助都很好,我试图同时在网站的多个部分上工作,这很麻烦,我会说每个人都会发现它很难或者很难发现。有人喜欢挑战吗? :)

---------编辑:

我已经让Magento和Wordpress与在CodeCanyon网站上找到的James Kemp的模块完美协作(针对Magento和Wordpress的单点登录),并且我将使其适应于FluxBB或我做的其他任何事情。

只是传递信息...我看到它已被编辑,不知道所编辑的内容,也无关紧要。自发布以来我一直在传递我找到的信息。

最佳答案

我正在管理/自定义magento + vanilla论坛+由Yii框架制作的自定义应用程序的组合。用户在应用程序之间“共享”。这两个链接都不好。正如艾伦(Alan)已经回答您的那样,正确的SSO将与外部用户数据库/经理一起使用。但是,并不是每个人都愿意重新编码三个应用程序,只是为了获得每周发布1个论坛和每月写一篇文章以与magento一起使用的博客。因此,我们剩下的选择更少了。首先,如果您不想(很可能不希望)重写已经编写并正在维护和维护的开源项目的很大一部分,然后根据定期更新来维护您的更改(需要它们),那么您必须在三个数据库上复制用户数据。除非您采用的项目能够以某种方式将用户数据作为插件或外部模块进行管理。您选择的AFAIK都不是。

那么,如何实现呢?假设您选择Magento作为所有人的母亲,则需要它导出用于身份验证的API,该API可能会在使用Cookie和JavaScript的浏览器上运行,但这非常棘手,或者您可以使用其前端Cookie来验证服务器端 session 子应用的服务器API请求。就“经典” SSO而言,这是首选方法。从技术上讲,当您的用户打开论坛或博客时会发生什么,相应的应用程序会检测magento的cookie并检查 session 是否有效以及谁是用户。如果找到该用户,则将其数据复制到博客或论坛表中。然后,您需要使用新创建的用户记录在博客或论坛应用上启动经过身份验证的 session 。

到目前为止还不错,但是还有一些工作要做。您需要在子级应用中禁用用户配置文件管理或对其进行修改,以使Magento中保存的数据始终是正确的数据,并且您需要发明一些方法以将Magento的用户配置文件表示同步到子级。最好将其挂接到Magento的事件上,以便每次用户更改其个人资料时,子应用程序中的数据都会更新。但是还有另一个。您可能想保留一些特定于数据的应用程序,不需要在论坛上使用Magento的FirstName + LastName作为显示名称,有些人希望将其保密。

以上就是我想起的有关保持其运行的有趣事实。当然,我还有很多其他事情,或多或少是具体的。但是希望我的评论可以帮助您放屁。

我们试图评估其他选项,但是任何没有重复数据的东西似乎实现或维护都太昂贵了。也许以后。有预算和时间。

关于api - 以Magento为主要工具,并创建一个单一登录即可与其他第三方软件集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12199573/

相关文章:

c++ - 使用手动 CreateFile() 复制单个大文件(>100 MB)

python - 为什么在 telegram 中调用 auth.signIn 时会收到 PHONE_NUMBER_UNOCCUPIED 错误?

magento - 如何在 magento 的顶部链接中添加注册链接

session - 为什么大多数网站在没有 cookie 的情况下无法运行?

javascript - 在 ReactJs 中获取未定义的值

java - 无法在 apache tomcat 服务器上显示 json 格式的值

Magento 不会在主页上显示所有产品

Magento模型删除功能

session - Google Analytics 如何跟踪 session 过期情况?

php - 准确统计活跃用户? (PHP + MySQL)