所以这是交易。我有一个ionic应用,其中包含" satellizer"和" angular-jwt"与barryvdh/laravel-cors和tymondesigns/jwt-auth的Laravel5后端通信。运行此组合在Homestead组合witg离子服务中工作正常。创建身份验证令牌并将其存储在localStorage中,并使用Laravel进行验证。该请求如下所示:
[IONIC SERVE] http://192.168.1.54:8100/#/auth
[POST] http://192.168.10.10/api/v1/authenticate?email=[email]&password=[password]
Returns [the_token]
[GET] http://192.168.10.10/api/v1/authenticate/user?token=[the_token]
Returns the user object from Laravel
我将api url更改为我的实时服务器
[POST] http://domaintomyvps.com/api/v1/authenticate?email=[email]&password=[password]
Returns [the_token]
[GET] http://domaintomyvps.com/api/v1/authenticate/user?token=[the_token]
Returns {"error":"token_not_provided"}
验证工作正常,并返回一个令牌。但是在发送get请求时,我收到错误" token_not_provided"。
然后奇怪的事情发生了。从Chrome Postman尝试相同的请求时,令牌会生效并返回用户对象。
我的家园在VirtualBox中扮演Vagrant,在Ubuntu中扮演Nginx。我的生产服务器是在VPS上使用Apache的Debian。 Laravel装置在设置和按键方面完全相同。数据库完全相同(mysqldump)并且由于Postman创建了一个成功的结果。
任何可以指导我正确方向或遇到同样问题的人?您是否还需要有关设置或代码的更多信息?
答案 0 :(得分:0)
这解决了我的问题。 将以下内容添加到我的apache .htaccess中,禁用apache以从请求中删除auth头。我在following thread
中找到了这个答案RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]