我是使用 Spree
的新手我只是在玩 3.0 稳定版。
我想使用名为“高级 REST 客户端”的 chrome 应用程序通过 API(或类似的东西)将用户帐户登录到商店,然后访问商店并查看在那里登录的帐户。
我在 https://guides.spreecommerce.com/api/ 中找不到有关通过 API 涉及用户或帐户的此类操作的任何引用资料.但是,我注意到如果您向 localhost:3000/login 发送 POST 请求并发送帐户详细信息,您会得到商店的 html 代码,表明您已成功登录。
之后,我检查了我的浏览器 cookie,也成功创建了商店 session cookie。最后,当我将浏览器重定向到商店 (localhost:3000) 时,该帐户没有登录,但 cookie 仍然保留在那里。
我认为与 Spree
生成的访客 token 有关,但我不明白为什么它不起作用。
如果您对如何实现我的目标有任何想法,我将不胜感激。
最佳答案
为了使用 REST 客户端,例如您提到的 Chrome 应用程序,您必须针对 Spree 的 REST API 进行身份验证。您需要一个 spree api token 来验证 future 的请求。
看看 Spree Api Auth Gem .它允许您接收这样的 api token :
\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
您还可以使用此 gem 创建新的用户帐户。由于 Spree 在下面使用 devise,您也可以直接使用 devise 来验证您的用户。
关于ruby-on-rails - spree 商务 : User Login through API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31616177/