微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

OroCommerce 店面 json 登录问题

如何解决OroCommerce 店面 json 登录问题

我需要为一些 js 应用程序进行店面登录,最简单的方法似乎只是使用我的包中的 app.yml 文件将 json-login 添加到前端防火墙:

security:
  firewalls:
      frontend:
          json_login:
            check_path: json-login

此身份验证工作正常,但 oro 店面本身发生了意外问题 - 现在店面索引页面出现错误 未捕获的 PHP 异常错误:在 vendor/oro/commerce/src/Oro/Bundle/CatalogBu​​ndle/Layout/DataProvider/FeaturedCategoriesProvider.PHP 第 106 行中“调用成员函数 getId() on null”:

            $this->tokenAccessor->getorganization()->getId()

auth 有什么问题,为什么在 auth 本身有效时会出现这个问题?

如果有人会尝试重现问题(只需在 app.yml 中添加行)请注意,在更改 app.yml 之前,您应该始终进行 prorep 登录/注销,否则问题可能会在没有 yml 更改的情况下发生或在更改时不会发生,可能是取决于会话中的令牌数据

更新:我检查了会话数据,实际上使用认配置会话包含 "Oro\Bundle\SecurityBundle\Authentication\Token\UsernamePasswordOrganizationToken"

并且在 json-login 添加之后它将包含 "Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken" 但为什么会这样呢?我没有改变任何令牌配置,甚至不需要,只需要为店面进行 json 登录

解决方法

Oro 中的安全令牌必须实现 Oro\Bundle\SecurityBundle\Authentication\Token\OrganizationAwareTokenInterface 接口。

如果符合您的需要,您可以使用多个 existing implementations 之一或创建一个新的。

您可以在 JS 应用程序中使用多种内置的、随时可用的身份验证方法来访问 Oro API:oAuth2 and WSSE

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。