Spree commerce: логин пользователя через API
Я довольно новичок, используя Spree
и я просто играю со стабильной версией 3.0.
Я хотел бы зарегистрировать учетную запись пользователя в магазине через API (или что-то в этом роде) с помощью приложения chrome под названием "Расширенный клиент REST", затем посетить магазин и увидеть учетную запись, зарегистрированную там.
Я не смог найти ссылки для такого рода действий, в которых участвуют пользователи или учетные записи через API, по https://guides.spreecommerce.com/api/. Тем не менее, я заметил, что если вы отправляете POST-запрос к localhost:3000/login, отправляя данные учетной записи, вы получаете html-код магазина, который сообщает, что вы успешно вошли в систему.
После этого я проверил файлы cookie моего браузера, и файл cookie сеанса магазина также был успешно создан. Наконец, когда я перенаправляю браузер в хранилище (localhost:3000), учетная запись не входит в систему, но cookie все еще остается там.
Я думаю, что это связано с гостевым токеном, сгенерированным Spree
, но я не совсем понимаю, почему это не работает.
Я был бы признателен за любую помощь, чтобы прояснить это, а также если у вас есть какие-либо идеи о том, как достичь моей цели, это также будет оценено
1 ответ
Чтобы использовать REST-клиент, такой как упомянутое вами приложение Chrome, вы должны пройти аутентификацию в REST API Spree. Вам нужен токен spree api для аутентификации будущего запроса. Посмотрите на Spree Api Auth Gem. Это позволяет вам получить токен API, как это:
\curl -v -H "Accept: application/json" -H "Content-type: application/json" -X POST -d ' {"user":{"email":"camelmasa@gmail.com", "password":"camelmasa"}}' http://localhost:3000/api/users/sign_in
Вы также можете создать новую учетную запись пользователя, используя этот драгоценный камень. Поскольку Spree использует devise внизу, вы также можете напрямую использовать devise для аутентификации вашего пользователя.