我正在编写rails web服务,我想使用authlogic进行身份验证, 因为这似乎是最常用和最活跃的身份验证宝石之一。 我们的客户应该能够使用他们的用户凭证进行身份验证,所以我决定 使用http基本身份验证(authenticate_or_request_with_http_basic)与ssl。
我想通过用密码,网址和请求时间的哈希替换原始密码进行身份验证来增加一些安全性,以确保只能在短时间内使用请求。由于webservice和客户端时间不同步,我必须发送 除登录凭据外的客户端时间。如何将客户端日期添加到身份验证标头并使用authenticate_or_request_with_http_basic方法读取它?
答案 0 :(得分:0)
为什么需要将时间详细信息发送给客户?您可以存储身份验证服务器端的TTL,并验证针对该TTL的所有未来请求。
成功的身份验证可能会向客户端发送一条消息,说他们有xxx分钟/天(TTL)来完成他们需要做的事情。当TTL过期时,您的Web服务应该向客户端返回中性响应(就像验证尝试失败一样 - 保护自己免受黑客攻击)。
最好不要乱用客户日期信息。如果他们的机器上的日期错了怎么办?
更新: 我仍然担心整个客户日期的事情。看看其他人如何实施API's with rails