php - 使用 JWT 缺少授权 header

标签 php apache mamp jwt mamp-pro

我正在尝试设置 JSON Web token 以从移动应用程序与我的 php 后端进行通信。我可以请求一个 token 就好了。当我需要验证它(或向另一个端点发出请求)时,我使用以下格式设置授权 header :

Bearer <token here>

但出于某种原因,在我的后端,$_SERVER['HTTP_AUTHORIZATION'] 未设置。

我在本地主机上使用带有 PHP7 的 Mamp Pro。这是我的 $_SERVER 数组的转储:

Array
(
    [SERVER_SOFTWARE] => Apache
    [REQUEST_URI] => /wp-json/jwt-auth/v1/token/validate/
    [REDIRECT_STATUS] => 200
    [HTTP_HOST] => localhost.dev
    [CONTENT_TYPE] => application/x-www-form-urlencoded
    [CONTENT_LENGTH] => 54
    [HTTP_CONNECTION] => keep-alive
    [HTTP_ACCEPT] => */*
    [HTTP_USER_AGENT] => CocoaRestClient/15 CFNetwork/760.2.6 Darwin/15.3.0 (x86_64)
    [HTTP_ACCEPT_LANGUAGE] => en-us
    [HTTP_ACCEPT_ENCODING] => gzip, deflate
    [PATH] => /usr/bin:/bin:/usr/sbin:/sbin
    [SERVER_SIGNATURE] => 
    [SERVER_NAME] => cloud.iblue.eu
    [SERVER_ADDR] => ::1
    [SERVER_PORT] => 80
    [REMOTE_ADDR] => ::1
    [DOCUMENT_ROOT] => /Applications/MAMP/htdocs/dev
    [SERVER_ADMIN] => you@example.com
    [SCRIPT_FILENAME] => /Applications/MAMP/htdocs/dev/index.php
    [REMOTE_PORT] => 51804
    [REDIRECT_URL] => /wp-json/jwt-auth/v1/token/validate/
    [GATEWAY_INTERFACE] => CGI/1.1
    [SERVER_PROTOCOL] => HTTP/1.1
    [REQUEST_METHOD] => POST
    [QUERY_STRING] => 
    [SCRIPT_NAME] => /index.php
    [PHP_SELF] => /index.php
    [REQUEST_TIME_FLOAT] => 1459177711.33
    [REQUEST_TIME] => 1459177711
    [argv] => Array
        (
        )

    [argc] => 0
)

当我尝试使用以 Basic dGVzdEB0ZXN0LmNvbToxMjM0NQ== 作为授权 header 的 HTTP 基本身份验证时,它工作正常:

[PHP_AUTH_USER] => test@test.com
[PHP_AUTH_PW] => 12345

知道哪里出了问题吗?

最佳答案

好的,我刚在这里找到答案:https://devhacksandgoodies.wordpress.com/2014/06/27/apache-pass-authorization-header-to-phps-_serverhttp_authorization/

所以我在我的 htaccess 文件中添加了以下行,它解决了我的问题:

SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1

关于php - 使用 JWT 缺少授权 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36265150/

相关文章:

php - Cronjob 检测最后修改的文件

php - 将Mysql表数据导出为CSV,在标题上使用PHP,无需html代码

mysql - 在两台计算机之间同步mySQL数据库

PHP shell_exec 仅适用于某些命令

php - 如何在 wordpress 中获取自定义帖子类型的 RSS 提要?

javascript - 如何在用户选择特定变体时为弹出窗口添加链接

php - 检查 PHP 是否安装在 Apache 或 IIS 服务器上?

javascript - Apache Cordova : Build failed Error code 1 and Javascript Exception

apache - apache 的双重代理语句

ftp - 如何在 MAMP 服务器上安装 mod_ftp 模块