Как создать пользователя с ROLE_API_ACCESS в Sylius?

Я следовал официальной документации rest-api sylius, но не смог создать пользователя с полем user[authorizationRoles]. Поскольку role_user является ролью по умолчанию, я предоставил массивы ролей, как указано в документах, подобных этому.

    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, поэтому, пожалуйста, помогите мне в этом.

заранее спасибо


person nimesh pahadi    schedule 09.03.2017    source источник


Ответы (1)


Вы не можете сделать это из коробки. Конечная точка, которую вы пытаетесь использовать, связана с клиентами, поэтому установка ролей авторизации была удалена. Эта часть документации устарела. Можете открыть PR с фиксом, если хотите :)

В любом случае, это можно будет сделать с помощью PR #7711, который позволит управлять SyliusUsers, но через конечную точку /users/, которая не создаст клиента.

Лучшим решением для вас было бы настроить Sylius\Bundle\CoreBundle\Form\Type\User\ShopUserType и добавить это поле в FormType. Просто взгляните на PR, о котором я упоминал ранее.

В качестве предупреждения, я хочу подчеркнуть, что ShopApi является экспериментальной концепцией для Sylius, поэтому вы можете столкнуться с гораздо более сложными проблемами, если захотите использовать его таким образом. Это выполнимо, но не тривиально.

person lchrusciel    schedule 09.03.2017