如果您想要与用户一起登录,请向POST
发送http://localhost:5984/_session
请求并获取Cookie。默认情况下,此Cookie有效期为10分钟,并存储在我的$_COOKIE
变量中。
在我的场景中,我希望用户能够根据他登录的事实(例如,有一个有效的令牌)与我的网站进行交互。我的问题是如何检查用户cookie是否仍然对我的CouchDB有效?
答案 0 :(得分:3)
借鉴here:
CouchDB的cookie算法(查看源代码)基本上是
data = username + ':' + timestamp; base64(data + ':' + sha_mac(data, secret))
。其中secret
是couch_httpd_auth.secret值加上用户的盐值。
这意味着如果您只想检查时间戳,您可以对Cookie进行Base64解码,然后从结果中提取时间戳,并与当前时间进行比较。
如果您想要实际验证cookie是否有效(即未伪造),您需要知道用户的密码salt和服务器密码。如果这是一个客户端应用程序,这是危险的。即使它是一个服务器应用程序,它也会将敏感信息放在更多地方,这会带来额外的安全风险。这些风险是否值得,取决于您和您的实施。