使用Magento作为主要,并创建单一登录以与其他第三方软件集成

时间:2012-08-30 14:46:48

标签: api magento session integration

这是我一直努力工作很长时间的事情。它首先从Prestashop开始,作为与我需要为整个网站制作的其他脚本或拼图的集成。我目前仍在使用Prestashop作为我的网店,但后来改用了Magento。

我转而使用Magento,因为它具有复杂的灵活性,因为我认为这是最好的解决方案,最好的支持和最好的整体电子商务脚本。

话虽如此,我与Prestashop所遇到的问题看起来是一样的,我将继续拥有任何方面,我试图将各种事物完美地融合在一起。

我有Magento设置,作为网站的主要部分,在Magento的子文件夹里面我将Wordpress安装在名为"文章"的文件夹中。而且我也使用FluxBB作为我的消息论坛,因为它没有笨拙的额外功能,我可以不关心,并且在一个名为"论坛&#34的子文件夹中的简单性;

从这一点来说,我们知道Magento,Wordpress和FluxBB都有自己管理用户的方式;创建,管理和跟踪它们。

我想要做的是找到最适合我的网站的三种或更多种方式,让客户的体验尽可能顺畅和实用。在通过电子邮件发送有才华且乐于助人的Alan Storm之后,他告诉我他所知道的最佳解决方案是制作他们都指向的第三方用户管理,并管理客户身份验证。我相信他的想法可能是最好的,但我想在StackOverFlow上把它放在那里,我也可以在Magento上发布这个,以获得喜欢挑战的magento开发人员和聪明人的广泛关注。

我有几个想法,没有一个可能有用,有些可能会工作半屁股,或者一个可能只是可行的。但首先让我告诉你到目前为止我取得的成就。我已经完成了将页面和页脚的整体设计集成在一起的必要步骤,因此Wordpress和FluxBB基本上被包装并包含在Magento的外部设计层中。因此,据说我已经做到了Magento将检查会话以查看用户是否登录到Magento的地方,并且说" Hello Guest"或" Hello User"。这是我已经达到停止点的地方,因为我不在我的深度并希望得到帮助,无论是我们在纯粹的挑战中共同创造的东西,还是有人说如果我付钱给他们他们会帮助我,无论我想这样做实现。如果我得到的代码是通过支付团队努力的帮助而得出的,我想让其他人可以免费使用这个概念用于他们自己的项目。


Brain Fart#1:

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

从那里,我想弄清楚Magento中哪个类在注册时创建客户时实际输入数据库。当我找到该代码时,我想扩展它将用户凭据复制到Wordpress和FluxBB数据库中的其他两个表的能力。如果这似乎是一个更好的主意,那么它可以只是Wordpress和FluxBB的一些额外的字段,是的,我的意思是Magento创建的实际加密密码,我希望它也是安全的。

从那里,当我们知道客户向Magento注册时,数据被复制到其他两个表格,那么我们至少已经取得了进展,这个进展是否真的有效,还有待确定。

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

然后是我眼中的有趣部分,在他们订购产品,审查wordpress文章并可能留下评论,发送给朋友等等时,让整个网站继续该死的会话......以及发布主题,回复FluxBB容量等。

对我来说,这是创建字段或添加Magento客户注册数据的地方,我可以检查他们是否已经登录Magento,从那里我们可以让它验证自己。这可能是过度杀戮,或者这可能只是需要做的事情。但是对我来说,如果凭证位于所有三个数据库中,则应该能够通过更改Wordpress和FluxBB中的代码或添加代码来验证它们。是的我知道如果客户希望更改他们的信息,我们还必须对配置文件编辑和密码编辑做些什么。

但这是我第一次想到这是否是正确的决定,我想听听这里人们的丰富知识,他们拥有比Magento,PHP和其他一切更多的经验和知识。


Brain Fart#2

由于Magento的复杂性及其整体设置如何,这种不合逻辑的想法对我来说似乎完全是一种外在的延伸。

但我们的想法是删除/编辑Wordpress和FluxBB(以及任何其他第三方软件),几乎忽略了它自己的注册,登录,注销,编辑和查看Magento的方法&#39的证书和建立新客户。基本上使它们成为Magento的超大模块。

我只知道Magento的设置方式是模块化,其复杂性似乎需要更多的编码和故障排除才能做到这一点。


Brain Fart#3

转储Wordpress和FluxBB并查看Magento连接存储中的模块,该模块几乎具有我需要的所有功能,并且可以向他们添加缺少的内容,而不是试图集成第三方软件。

我喜欢Wordpress,我认为用模块复制它,至少在我查看CMS /新闻相关的所有可用模块的时间之后是一个艰难的电话。 FluxBB我可以接受或离开它,如果有人有一个已经可行的解决方案来使用phpBB或vBulletin或SimpleMachines我会跟他们一起去。我宁愿它是免费的开源软件,不是因为我是一个廉价的滑板,而是因为我尽可能地支持开源。


Brain Fart#4

这可能是一个cookie,但只有在它们允许cookie时才有效,或者可以某种方式添加到会话中以允许事情通过但Magento设置不同的会话或允许你这样他们的东西崩溃其他所以这可能根本不是一个想法,也可能是一个想法。


我知道我没有举例说明我曾经尝试过的东西,我看过的文件或与此有关的任何内容,我道歉,我提供了一些相关的链接,但到目前为止没有具体找到与我想要完成的内容相符的内容。我试图将一些事情与一些有趣的灾难性结果合并在一起。

链接示例?: 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的工作或者我做的任何其他事情。

只是传递信息......我看到这是编辑过的,不知道编辑了什么,不在乎。只是传递了自发布以来我发现的信息。

1 个答案:

答案 0 :(得分:1)

我正在管理/定制magento + vanilla论坛的组合+在Yii框架中制作的自定义应用程序。用户在应用之间“共享”。这两个链接都不好。正如Alan已回复您所说,正确的SSO将与外部用户数据库/经理一起使用。但是,并非所有人都想重新编码三个应用程序只是为了获得每周一次的帖子和每月一篇博客与magento合作。所以我们留下了更少的选择。首先,如果您不希望(很可能不是)重写已经编写的正在更新和维护的开源项目的大部分,然后根据定期更新维护您的更改(您想要它们),那么您必须在三个数据库上复制用户数据。除非你适应的项目有一些方法来管理用户数据作为插件或外部模块。你选择的AFAIK都没有。

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

到目前为止很好,但还有一些工作。您需要在子应用程序中禁用用户配置文件管理或修改它,以便Magento中保存的数据始终是正确的,您需要发明一些内容以将Magento的用户配置文件表示同步到子项。最好将其与Magento的事件联系起来,以便每次用户更改其配置文件时,都会在子应用程序中更新数据。但也有另一个。您可能希望保留一些特定的数据应用程序,论坛上的显示名称不一定是Magento的FirstName + LastName,有些人希望将其保密。

以上是我能记得的有关保持运行的有趣事实。当然还有许多我遗漏的东西,或多或少具体。但希望我的评论可以帮助你的大脑放屁。

我们已经尝试评估其他选项,但没有重复数据的任何内容似乎都太昂贵,无法实现或维护。也许以后。有预算和时间。