繁体   English   中英

Laravel + Dingo + JWT + cors和OPTIONS方法

[英]Laravel + Dingo + JWT + cors and OPTIONS method

在我的Laravel安装中,我已经设置了Dingo API以及tymondesigns的JWT-AuthLaravel-cors cors。

这是从前端(托管在其他服务器上)登录和检索数据的过程:

  1. POST凭证到API
  2. 接收JWT令牌,然后将其存储在localStorage并在前面带有Bearer密钥。 此后,拦截器将自动获取并设置带有JWT令牌的Authorization标头。
  3. POST请求发送到/users/me ,这只是一条检索用户数据的途径。 用户数据目前带有username, email, permissions and messages messages是一种Eloquent模型,其中User::class基本具有hasMany(Message::class) 顺便说一句,检索用户数据的方法使用$user = JWT::parseToken()->authenticate();读取用户$user = JWT::parseToken()->authenticate(); 然后我正在使用Dingo$this->response()->item($user, new SelfTransformer()); 将数据发送回去。

因此,目前看来一切正常。 用户登录,用所有必需的东西填充用户对象,并用消息填充消息表。

我正在对消息进行分页,因此目前一次只收到1条消息。

现在的问题是,这一点(用户对象被检索后),如果我再拍的要求,比方说在/users/me?messages=2来获取消息的第二页,我收到以下错误: No 'Access-Control-Allow-Origin' header is present on the requested resource.

如果我也尝试注销,则会收到相同的错误。

如果我尝试向已经注册的用户注册,我什至会收到相同的错误。

因此,感觉好像每一次Laravel中都会引发异常,不再设置Access-Control-Allow-Origin标头。

这是我的cors配置:

return [
    /*
     |--------------------------------------------------------------------------
     | Laravel CORS
     |--------------------------------------------------------------------------
     |

     | allowedOrigins, allowedHeaders and allowedMethods can be set to array('*')
     | to accept any value.
     |
     */
    'supportsCredentials' => true,
    'allowedOrigins' => ['*'],
    'allowedHeaders' => ['Content-Type', 'Accept', 'Authorization', 'X-Requested-With', 'Origin'],
    'allowedMethods' => ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'],
    'exposedHeaders' => ['Authorization'],
    'maxAge' => 0,
    'hosts' => [],
];

如果我使用Postman,一切正常。

另外,我注意到在“网络”标签中,始终设置2个请求。 一种是将方法设置为OPTIONS ,第二种是实际请求...

我很沮丧...

我不确定。 在您的app/Http/routes.php将其放在顶部并查看。

header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Allow-Methods: POST, GET, OPTIONS, PUT');
header("Access-Control-Allow-Headers: Authorization, X-Requested-With,  Content-Type, Accept");

希望能帮助到你!

那是飞行前的要求,我认为很好

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM