使用Devise

时间:2015-07-20 12:27:58

标签: ruby-on-rails ruby-on-rails-4 devise spree spree-auth-devise

我正在使用spree来构建我的电子商务应用程序。它使用Devise gem进行身份验证。每次创建一个订单时,随机的guest_token都与它相关联。在我的应用程序中,我使用了一个功能,我在执行客户结账时将订单与电子邮件关联,已经有guest_token。主要问题是订单完成后,guest_token是进一步带走,即如果另一个用户登录,那么已完成的订单与用户关联,因为他的guest_token和已完成的订单guest_token是相同的。如果用户登录然后下订单,这不会发生。我在这里做错了什么?为什么Devise生成一个guest_token并将其与spree中的顺序相关联?如何摆脱这个?

1 个答案:

答案 0 :(得分:1)

这在https://guides.spreecommerce.com/api/orders.html的文档中说明如下:

  

order_token参数可用于授权Spree API中订单的任何操作。

*注意:order_token == guest_token

拥有此令牌后,我们就可以使用此API请求获取订单的详细信息:

http://domainname.com/store/api/orders/R744620229?order_token=deMRSmjCxc5C1cwlkT6-Ow

  • 'R000000000'=>订单号
  • 'XXXXSmjCxc5C1cwlkT6-Ow'=>订单的访客令牌(也称为order_token)

我们还需要在Spree::Api::Config[:requires_authentication] = false 中添加此行config/initializers/spree.rb以使API正常运行。