如何在 Extbase-CommandController-Task 中创建新的 TYPO3 FE 用户

问题描述 投票:0回答:1

我们需要同步用户,因此计划使用 TYPO3 调度程序从第三方 API 提取数据,更新现有用户并将新用户添加到

fe_users
表。

更新现有用户可以正常工作,但我不知道如何创建新用户。这是我目前在 TYPO3 v8 中使用的代码。我没有收到任何错误消息,但新用户未添加到数据库中。

/**
 * @var \TYPO3\CMS\Extbase\Domain\Repository\FrontendUserRepository
 */
protected $userRepository;

/**
 * @var \TYPO3\CMS\Extbase\Persistence\Generic\PersistenceManager
 */
protected $persistenceManager;

...

$user = $this->userRepository->findOneByForeignId($id);
if ($user) {
    $this->updateUserData($user);
    $this->userRepository->update($user);
} else {
    $user = new \TYPO3\CMS\Extbase\Domain\Model\FrontendUser();
    $this->updateUserData($user);
    $this->userRepository->add($user);
}
$this->persistenceManager->persistAll();

我找不到任何在循环中创建新对象的示例。它们(这里是用户模型)总是作为参数注入到控制器操作中。

typo3 typo3-8.x typo3-extensions
1个回答
0
投票

您确定必须同步所有用户吗? TYPO3 有一个概念叫做认证服务和认证服务。这允许在登录时获取用户。

这有很多好处:

  • 即时访问,您无需等待下一次同步运行。被屏蔽的用户也一样
  • privacy 从未使用过typo3系统的用户没有数据。
  • 安全性:可能避免在 typo3 中存储用户密码哈希

如果API无法访问,则无法进行潜在的缺陷登录

参见:https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/Authentication/Index.html

© www.soinside.com 2019 - 2024. All rights reserved.