我已经编辑了我的问题,并且因为我认为它含糊不清。所以 我做得很简单。 我想使用存储在浏览器中的cookie来使用API对用户进行身份验证。当然,cookie会在每次登录时随机更改。
信息知识:在后端使用自定义API和php
Javascript和Tempojs作为模板引擎前端。
编辑:
我的算法是这样的: 数据库只有一个字段,在每次登录尝试时都会更改,每次登录都会增加。
当用户使用php登录时。生成会话和cookie,并且用于连接到api的一个cookie将是
hash of (username + login attempt+ salt)= xxxxxxxyyyyyyxxxxxx
现在Api知道cookie值应该是什么,因此它验证用户是否正确并响应数据。现在,只要用户注销cookie过期,api就不能再进行身份验证。 我将使用什么来获取用户的数据我将发布
Cookie通过xmlhttprequest到api服务器,该服务器位于不同的子域,并将数据加载到Web应用程序中。
如果有人认为这种方法很脆弱或不安全,这是我的计划。请告诉我。 是的跨域请求我将使用
标题(“Access-Control-Allow-Origin:*”) 要么 标题(“Access-Control-Allow-Origin:'www.website.com'”)
但是,如果你确实有替代。请说明我可以使用jsonp,但我不想,而且我也可能必须上传文件数据。
答案 0 :(得分:3)
您提出的解决方案听起来不错。但是,您应该确定一些事项:
foo
并且还有另一个用户foo1
,如果您不使用分隔符,则会发生这种情况:当foo
第11次登录时,他的cookie是hash("foo11"+salt)
,当foo1
第一次登录时,他的Cookie也是hash("foo11"+salt)
。那会很糟糕,所以做hash(user+"|"+login_attempt+"|"+salt)
之类的事情。Access-Control-Allow-Credentials: true
标题。哦,还要记住,当用户从计算机A登录然后从计算机B登录时,他在计算机A上的会话将不再有效。