我需要对一些js应用程序进行商店登录,最简单的方法似乎是使用包中的app.yml文件将json-登录添加到前端防火墙:
security:
firewalls:
frontend:
json_login:
check_path: json-login这个方法工作得很好,但是oro商店本身发生了意想不到的问题--现在vendor/oro/commerce/src/Oro/Bundle/CatalogBundle/Layout/DataProvider/FeaturedCategoriesProvider.php第106行中的“调用null上的成员函数getId()”出现了带有未察觉的PHP异常错误的店面索引页错误:
$this->tokenAccessor->getOrganization()->getId()奥斯有什么问题,为什么这个问题发生在奥斯本身起作用的时候?
如果有人会尝试复制问题(只需在app.yml中添加行),请注意,在更改app.yml之前,您应该始终使prorep登录/退出,否则问题可能在没有yml更改的情况下发生,或者在发生更改时不会发生,这可能取决于会话中的令牌数据。
Upd:我检查了会话数据,实际上默认配置会话包含"Oro\Bundle\SecurityBundle\Authentication\Token\UsernamePasswordOrganizationToken"。
在json登录之后,它将包含"Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken",但是为什么会发生这种情况呢?我不改变任何令牌配置,甚至不需要,只是需要json登录的店面。
发布于 2021-03-17 13:58:56
Oro中的安全令牌必须实现Oro\Bundle\SecurityBundle\Authentication\Token\OrganizationAwareTokenInterface接口。
如果满足您的需要,您可以使用多个现有实现中的一个,或者创建一个新的。
有几个内置的、可以使用的身份验证方法,您可以在JS应用程序中使用这些方法来访问Oro:oAuth2和WSSE。
https://stackoverflow.com/questions/66664284
复制相似问题