我有一个Rails应用程序,可以对第三方API进行多次特定于用户的调用。他们在填写调查过程中与大量数据进行交互,并将其进度存储在HTML5 localStorage中,直到调查结束并将数据保存在本地数据库中。 localStorage已清除。
API调用需要将一个标记添加到末尾作为“auth =”参数。现在,我让用户使用他们的用户名和密码登录我的应用程序,将这些凭据发布到该API的“会话”调用,然后用JSON获取令牌。我将该令牌存储在控制器中的变量中,并使用它来进行连续的API调用并在我的应用程序中显示用户的数据等。
我已经学到了很多关于Rails的知识,但几乎没有关于会话或身份验证的知识。一般来说,为了成为一个安全的场景,还有什么我需要做的吗?我觉得我错过了什么。
答案 0 :(得分:1)
假设用户的第三方服务的用户名/密码组合没有到达您的服务器,对我来说似乎没问题。
如果您的服务器看到用户的凭据,那就不是特别酷。而是使用OAuth来获取第三方登录,并使用令牌代表用户发出请求。如果要避免将用户保存到数据库,通常可以将整个会话保留在客户端上。
在本地存储中存储进度听起来不错。要保留值,您可以将表单的页面设为选项卡(以隐藏上一个表单,而不是新页面)并使用:
autocomplete="on"
表示值应该恢复到原来的状态。在编写代码之前尝试将其保存到localstorage。