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 для аутентификации вашего пользователя.

Другие вопросы по тегам