我已經(jīng)使用 PHP(7.0 版)構(gòu)建了一個自定義 API,特別是使用 tymon/jwt-auth(1.0.0-rc.2 版)包進行用戶授權(quán)的 Laravel 框架(5.5.40 版)。我的許多控制器功能使用這一行來獲取當(dāng)前用戶的憑據(jù):$user = JWTAuth::parseToken()->authenticate();我使用 Postman 來測試我的 api。當(dāng)我在本地環(huán)境中進行 api 調(diào)用時,授權(quán)正常通過并返回預(yù)期數(shù)據(jù)。當(dāng)我對我的實時站點 API(托管在我的 apache 服務(wù)器中)進行 api 調(diào)用時,我收到此錯誤:無法從請求中解析令牌由于這個錯誤只發(fā)生在我的實時 API 上,我推測我的 API 的 .htaccess 文件有問題(順便說一下,應(yīng)用程序可以正常識別,我做了一些調(diào)試并檢查了我的 apache error_log 以確保對我的API 的 .htaccess 被識別)。我嘗試添加這些行(以及這些行的不同變體,因為我在研究時遇到了多個建議):RewriteEngine OnRewriteCond %{HTTP:Authorization} .+RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]但錯誤仍然存在。我嘗試添加此代碼:var_dump($_SERVER);在...之前:$user = JWTAuth::parseToken()->authenticate();我注意到在我的實時 API 中,$_SERVER 數(shù)組中缺少這些元素: REDIRECT_HTTP_AUTHORIZATION、HTTP_AUTHORIZATION上面的 .htaccess 代碼不是要手動添加這些嗎?這些是我在 Chrome DevTools 中看到的響應(yīng)頭:訪問控制允許來源: http:/example.gr緩存控制:無緩存,私有連接:關(guān)閉內(nèi)容編碼: gzip內(nèi)容類型:應(yīng)用程序/json日期: 2019 年 5 月 14 日,星期二 11:33:10 GMT服務(wù)器:阿帕奇?zhèn)鬏斁幋a:分塊變化:起源,接受編碼X-RateLimit-Limit: 60X-RateLimit-Remaining: 59這些是我的請求標(biāo)頭(顯示臨時標(biāo)頭):接受:應(yīng)用程序/json,文本/純文本,/授權(quán):承載eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9hcGkudjIucmVzY2FwZXIuaG9uZXN0cGFydG5lcnMuZ3JcL2FwaVwvYXV0aFwvbG9naW4iLCJpYXQiOjE1NTc4MzM1ODksImV4cCI6MTY0NDIzMzU4OSwibmJmIjoxNTU3ODMzNTg5LCJqdGkiOiJweDRjNDlOckFQbGMyM21OIiwic3ViIjo1LCJwcnYiOiI4N2UwYWYxZWY5ZmQxNTgxMmZkZWM5NzE1M2ExNGUwYjA0NzU0NmFhIn0.YWPhPDeNrB4TI1gdhBYylrmIAs1-R1-K2M2eKyO89KY來源: http : //example.gr參考: http://example/summary用戶代理: Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,如 Gecko)Chrome/74.0.3729.131 Safari/537.36
2 回答

幕布斯6054654
TA貢獻1876條經(jīng)驗 獲得超7個贊
似乎 apache 正在刪除授權(quán)標(biāo)頭。所以試試這個
從
RewriteCond %{HTTP:Authorization} .+
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
至
RewriteCond %{HTTP:Authorization} .
RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
正則表達式有點不同。此配置是從 symfony/apache-pack 的默認(rèn) .htaccess 直接復(fù)制/粘貼的,您可以在此處找到 symfony/apache-pack

慕容708150
TA貢獻1831條經(jīng)驗 獲得超4個贊
問題終于解決了!這是一個權(quán)限問題。我將文件夾的所有內(nèi)容都默認(rèn)為 755,文件的所有內(nèi)容都默認(rèn)為 644,并且出現(xiàn)了 HTTP_AUTHORIZATION 標(biāo)頭。
- 2 回答
- 0 關(guān)注
- 188 瀏覽
添加回答
舉報
0/150
提交
取消