think-api icon indicating copy to clipboard operation
think-api copied to clipboard

在某些Apache环境下获取不到token

Open qeq66 opened this issue 7 years ago • 6 comments

在某些Apache+CGI/FastCGI环境下,获取不到Authorization。在.htaccess添加以下规则 # Handle Authorization Header RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] PHP也只能获取到REDIRECT_HTTP_AUTHORIZATION,而不是HTTP_AUTHORIZATION。导致无法获取token,建议在getToken方法里面做一下判断获取

qeq66 avatar Apr 10 '19 08:04 qeq66

有测试过 header 头设置 Access-Control-Allow-Headers 加上 Authorization 值后的效果嘛

czewail avatar Apr 10 '19 09:04 czewail

@czewail 已经开启了的。是环境问题,弄了一下午了

qeq66 avatar Apr 10 '19 09:04 qeq66

@qeq66 有尝试过在 . htaccess 设置 CGIPassAuth on

参考: https://httpd.apache.org/docs/2.4/en/mod/core.html#cgipassauth

czewail avatar Apr 10 '19 10:04 czewail

@czewail 版本没有2.4,加上后报错

qeq66 avatar Apr 10 '19 10:04 qeq66

@qeq66 SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1 可以实现吗

czewail avatar Apr 11 '19 01:04 czewail

@czewail 这段重写,跟我上面那段是一样的。如果不加的话,连REDIRECT_HTTP_AUTHORIZATION都没有,加上才有的。

qeq66 avatar Apr 11 '19 02:04 qeq66