【问题标题】:Access HTTP authentication username in PHP?在 PHP 中访问 HTTP 身份验证用户名?
【发布时间】:2015-09-25 10:06:07
【问题描述】:

是否可以在 PHP 中访问通过服务器的本机 HTTP 摘要身份验证进行身份验证的用户的登录名(因为完全反对同一 HTTP 身份验证协议的 PHP 实现)?

【问题讨论】:

    标签: php http digest-authentication


    【解决方案1】:

    客户端发送的HTTP标头中提供了您要的数据(根据https://www.rfc-editor.org/rfc/rfc2617),即标头Authorization

    在 PHP 中,可以像这样检索这个标头:

    $header = $_SERVER['HTTP_AUTHORIZATION'];
    

    标头包含许多用逗号分隔的键值对。用户名在username 键中,您可以通过以下方式提取:

    preg_match('/username="([^"]+)"/', $header, $matches);
    $username = $matches[1];
    

    【讨论】:

    • 谢谢,我在此期间想通了(仍然接受)。令人困惑的因素是我错误地认为摘要身份验证是为文档根目录设置的,而它只是为子目录设置的。我正在处理的组件位于另一个子目录中,显然没有获得授权标头。
    猜你喜欢
    • 1970-01-01
    • 2011-01-24
    • 2012-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-03
    • 2014-12-17
    • 1970-01-01
    相关资源
    最近更新 更多