php - 使用 PHP 身份验证进行 HTTP 身份验证

标签 php javascript

我正在为我的网站创建一个成员(member)区域,并且它已经在运行。我使用 mysql 和 php 对成员进行身份验证,效果非常好。

但现在出现问题,我想为成员(member)提供将文件上传到系统的可能性,并且这些文件应该仅对登录的成员(member)可用。

我知道我可以将这些文件存储到数据库甚至文件系统中,并通过 php 为它们提供服务,但是当成员上传更大的文件时,这对于服务器来说会变得非常繁重。这些文件可能有 20MB 甚至更大。

我想让 apache 提供文件服务,但只需要找到一种自动进行 http 身份验证的方法,这样用户就不需要登录两次。我想可以在一个用户名和密码后面进行http身份验证,就像当用户登录php和mysql身份验证时,透明地同时javascript等也会执行http身份验证,每个成员都会执行使用相同的凭据进行 http 身份验证。当然,我不想将这些 http 身份验证凭据存储在 javascript 文件中,但类似 ​​ajax 的解决方案可能可以解决问题。我只是不知道该怎么做。

最佳答案

您似乎将身份验证(提供某种登录方式)与 HTTP 身份验证(专门使用 HTTP 协议(protocol)进行身份验证,并且浏览器向用户显示弹出窗口)混淆了。

您可能需要前者,这样您就可以设置登录页面的样式。在这种情况下,您必须使用 PHP 或某些脚本语言来检查用户是否已登录。fpassthrureadfile对于某些网站来说可能是很好的解决方案;它们速度很快,并且针对此类工作进行了优化。

如果您确实想在 Web 浏览器而不是 PHP 中进行文件处理工作,一种解决方案是创建唯一的、短期的文件名。例如,您可以使用 link 在 PHP 中创建指向该文件的硬链接(hard link)。然后将用户重定向到临时文件名。将硬链接(hard link)存储在数据库中并在一段时间后将其删除。

关于php - 使用 PHP 身份验证进行 HTTP 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3074409/

相关文章:

php - Xcode- swift -NSURL : "fatal error: unexpectedly found nil while unwrapping an Optional value"

php - 是什么指令导致了这种情况?

javascript - 如何检查是否选择了表单选择以提交表单?

javascript - 为什么当我声明类字段时 jshint 会抛出错误?

javascript - 带有 null src 的 iframe 内 Javascript 文件的路径

php - 使用 file_get_contents 将数据从 Swift 传递到 PHP for JSON?

php - SQL 使用 PHP 递归更新表

php - 如何在使用 PHP 抓取网页时跳过包含文件扩展名的链接

javascript - JQuery POST 无法正常工作并出现错误

javascript - 后端API应用程序未运行时如何处理Vue JS应用程序?