我有一个使用Devise的Rails后端,和一个在单独站点上的解耦的Backbone前端。
我想让Backbone对我的项目资源的单独Rails服务器进行GET
调用。基于:
1.如果用户未登录,请使用一些默认参数进行GET
调用
1.如果用户已登录,则使用user.attribute
作为参数进行GET
调用
我还希望允许用户以POST
编辑帐户详细信息(例如,user.attribute
)。
我该如何:
1.检查用户是否已登录/允许用户从Backbone或单独的Rails站点登录
1.提取已登录用户的属性
POST
时验证真实性
TL;DR如何在Devise和Backbone之间共享会话?如何使用该会话进行呼叫?会话是否共享正确的结构?
我看过this answer,目前为止我的理解是:
- Backbone 网将
GET
中的用户登录信息传递给设备/signin
- Rails发送一个会话cookie和其他东西,我不知何故保存在Backbone的某个地方
- 每次Backbone进行
GET
或POST
调用时,我都会使用那个会话cookie和其他东西,Rails/Devise会以某种方式对其进行验证
提前感谢-
1条答案
按热度按时间2jcobegt1#
前端最好先假设用户已经登录,然后发出请求,服务器用401、403或类似的响应代码将请求失败返回,向前端表明用户没有通过身份验证。然后前端应该进行任何必要的调用来验证用户,然后根据需要为用户重新发出原始请求。