2017-03-09 42 views
0

我遵循sylius的官方rest-api文档,但无法使用字段用户[authorizationRoles]创建用户。由于ROLE_USER是默认的角色,我的角色提供的阵列在文档中提到这样如何在Sylius中使用ROLE_API_ACCESS创建用户?

POST http://localhost:8000/api/customers/ 

    firstName = Ram 
    lastName = Thakuri 
    email = [email protected] 
    gender = m 
    user[plainPassword] = ****** 
    user[authorizationRoles] = [ROLE_API_ACCESS] 

我甚至在类似的帖子搜查,但未能找到正确的答案,不知道我错了,但得到了验证失败消息和错误如下(我正在使用POSTMAN)。

{ 
    "code": 400, 
    "message": "Validation Failed", 
    "errors": { 
    "errors": [ 
     "This form should not contain extra fields." 
    ], 
    "children": { 
    "firstName": {}, 
    "lastName": {}, 
    "email": {}, 
    "birthday": {}, 
    "gender": {}, 
    "phoneNumber": {}, 
    "subscribedToNewsletter": {}, 
    "group": {}, 
    "user": { 
     "children": { 
     "plainPassword": {}, 
     "enabled": {} 
     } 
    } 
    } 
    } 
} 

我想的使用Oauth为每个注册的用户有一个API访问接收访问令牌。

我是sylius的新手,所以请帮我解决这个问题。

在此先感谢

回答

1

您无法将其开箱即用。您尝试使用的端点与客户有关,因此设置授权角色已被删除。这部分文档已过时。你可以打开一个PR与修复,如果你想:)

无论如何,这将有可能与PR #7711这将使管理SyliusUsers而是通过/users/端点,不会创建一个客户做到这一点。

最适合您的解决方案是自定义Sylius\Bundle\CoreBundle\Form\Type\User\ShopUserType并将该字段添加到FormType。只要看看我之前提到的公关。

就像一个警告,我想强调的是,ShopApi是Sylius的一个实验性概念,所以如果你想以这种方式使用它,你可以遇到更复杂的问题。这是可行的,但不是微不足道的。