我有2页:login.php和index.php
当写入localhost / mysite / login.php并在表单中写入用户名和密码时,使用CURLOPT_HTTPAUTH = CURLAUTH_DIGEST和CURLOPT_USERPWD ='user:pass'的cURL请求将被传递到另一个文件,该文件将使用这些文件对用户进行身份验证使用HTTP DIGEST AUTH的凭据,将返回200表示成功,或401表示错误的凭据。
如果它获得200个代码,login.php将重定向到index.php,这将对同一个摘要文件发出cURL请求,但没有CURLOPT_HTTPAUTH或CURLOPT_USERPWD。这个想法是,因为我已经在login.php上做了这个,所以那些摘要凭证应该存储在用户浏览器上,但事实并非如此。所以index.php最终会要求获得凭据AGAIN,这就是问题。
有些人建议我使用CURLOPT_COOKIEFILE和CURLOPT_COOKIEJAR,但是没有人解释我这是如何工作的?我知道CURLOPT_COOKIEFILE用于检索cookie信息,而CURLOPT_COOKIEJAR用于保存它们。
所以问题是:
1)该cookie文件的路由(例如'/tmp/cookies.txt'),在哪里?究竟是什么/tmp/cookies.txt?与login.php处于同一级别?或者在C:/?另外,我应该事先创建这个文件吗?还是自动创建?
2)该文件是在服务器上还是在客户端上?如果在服务器上,我如何知道哪个cookie来自哪个用户,以便Y用户最终不会使用X用户凭据登录。
3)另外,当使用这些cookie选项时,我究竟节省了什么?在身份验证页面中,我应该手动创建要存储在该文件中的cookie吗?如果是的话,什么cookie?我需要保留Digest Auth Credentials,我认为这是一个带有nonce,cnonce,nc,用户名,响应等的标题......不确定这是否真的是它的方式。
先谢谢