0

我正在尝试将 Laravel 应用程序与 Xenforo 集成。最简单的方法似乎是同步用户的创建、登录、注销事件。

因此,例如,每当用户从 Xenforo 注销时,我想触发 Laravel 的Auth::logout.

Xenforo 安装在 Laravelspublic/forum文件夹中。

Xenforo 的注销操作在以下位置执行public/forum/src/XF/Pub/Controller/Logout.php

namespace XF\Pub\Controller;

use XF\Mvc\ParameterBag;
use XF\Mvc\Reply\AbstractReply;
use Illuminate\Support\Facades\Auth; // ===========> WONT WORK

class Logout extends AbstractController
{
    public function actionIndex()
    {
        $this->assertValidCsrfToken($this->filter('t', 'str'));

        /** @var \XF\ControllerPlugin\Login $loginPlugin */
        $loginPlugin = $this->plugin('XF:Login');
        $loginPlugin->logoutVisitor();
        Auth::logout(); // =========================> WONT WORK

        return $this->redirect($this->buildLink('index'));
    }

    (...)
}

我猜它是由于 Xenforo 不知道这个类,因为它的自动加载不知道它。

  1. 有没有办法让拥有自己的自动加载器的 Xenforo 也考虑 Laravel 自动加载器?

  2. 如果不是,我如何将此类添加到 Xenforos 自动加载器中?

提前致谢。

4

2 回答 2

0

即使你可以,它也可能会很混乱,并且可能会引入你不会考虑的错误。最简洁的方法是在 Laravel 中设置一个 API 端点,您可以从 Xenforo 注销控制器中发出请求,或者控制器调用以注销给定用户的工匠命令。这样,您就不必从另一个框架中引导框架,并且可以很好地分开两者。

于 2018-02-09T17:04:11.487 回答
-1

您可以查看官方作曲家文档,了解如何在其中包含额外的自动加载器。

编辑:

我要改写我的答案;您不应该尝试将 Laravel 加载到 Xenforo,因为可能存在第三方库版本问题、重复的辅助方法(如果 Xenforo 有),可能会出现各种其他问题,您最好使用 LaravelendpointREST调用登录,注销等。正是@samrap 提到的。

我的问题是您为什么要使用 Xenforo,是否必须使用它来实现您想要做的任何事情?

于 2018-02-09T17:04:52.290 回答