【问题标题】:Pass data from Laravel website to Joomla and vice-versa将数据从 Laravel 网站传递到 Joomla,反之亦然
【发布时间】:2018-06-20 16:18:19
【问题描述】:

我正在尝试找到一种方法,将 Joomla 扩展 Hikashop 与另一个使用 Laravel 构建的外部网站并行使用。

我正在使用:

  • Laravel 5.5
  • Joomla 3.8.x

这是设置的外观(非常简化):

 ___________________________                         ________________
|Joomla server with Hikashop| <---- API calls ----> | Laravel server |
 ⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻                         ⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻

要获取产品、价格、购买等。所有这些都是通过使用com_api 组件和一个自定义插件向 Joomla 网站请求 API 来完成的,该插件可以返回我需要的一切。

为了用户一致性,每当在 Laravel 上创建、修改或删除用户时,都会在 Joomla 上创建、修改或删除用户。
注意 1:用户无法在 Joomla 上编辑他的个人资料,因此同步只是一种方式。
注意 2:登录只能在 Laravel 网站上

这是我无法解决的问题:在 Laravel 网站上,当用户想要购买产品时,他会被重定向到 Joomla 网站以访问 Hikashop 界面并为产品付款。这会产生多个问题:

问题 1: 由于用户在 Laravel 上,他还没有在 Joomla 上会话。您如何使用 API 预先创建 Joomla 会话,以便当用户到达 Joomla 时他已经登录?

问题 2: 付款后,如何将用户重定向到 Laravel 上的上一页? (触发器很好,唯一的问题是传递“原始”URL)

我已尝试研究 SSO(单点登录),但我希望将这两个系统分开。

如果您对将会话 + 数据从一个网站传递到另一个网站有任何想法或方法,请提前致谢!

【问题讨论】:

  • 嗨,blackjak231 我知道现在问你已经太晚了。您找到上述问题的解决方案了吗?
  • 嗨@aMoLThite,我们最终使用 com_api 扩展在 Joomla 上做了一个自定义 API。对于从 Laravel 到 Joomla 的重定向+登录,我们在 Joomla 上创建了一个 GET api,它将在一个名为 token 的 url 参数中获取一个 token,该 token 是:base64(joomla_user_id+joomla_server_api_token+laravel_user_id+target_joomla_url)。使用此令牌,我们将为 joomla 用户调用登录方法并重定向到参数中传递的目标 url。
  • 对于付款,我们无法像我们想要的那样“返回上一页”。相反,我们将用户重定向回他刚刚购买的产品(在这种情况下,课程、视频等非物质事物)。为此,我们使用了 hikashop 的 joomla_product_id 和 Laravel 上的 API 来重定向到相关产品的详细信息页面。

标签: php laravel api joomla session-variables


【解决方案1】:

在我自己的理解中,我将如何去做。 首先,如果您是 laravel 表单,则需要进行身份验证。 如果您在 joomla 中有相同的用户,您可以在 joomla 中为 laravel 中的用户分配等效的 user_id。如果不介意的话。

只需让用户通过 laravel 和 joomla 的身份验证。在签名的私有令牌不是 jwt 或 oauth2 之后制作一个令牌。只是为了确保当您成功登录 laravel 和 joomla 时。两者都有一个类似的令牌。 那你现在就可以了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-18
    • 2021-06-21
    • 2013-11-25
    • 2010-09-29
    • 2011-03-22
    • 2010-12-27
    相关资源
    最近更新 更多