【问题标题】:Laravel cors throws error when trying to run Request::createLaravel cors 在尝试运行 Request::create 时抛出错误
【发布时间】:2020-01-17 08:17:56
【问题描述】:

我的 Laravel Passport API 有一个自定义登录方法。

我正在使用 Request::create 从我的登录方法中调用 /oauth/token 端点。

问题是在我的 React 项目中,我遇到了 CORS 错误。

该错误仅在使用登录方法时发生,我认为我已将其追溯到数据被“返回”的方式

我正在使用barryvdh/laravel-cors包,我的登录方法的相关部分如下;

    $data = [
        'grant_type' => 'password',
        'client_id' => 2,
        'client_secret' => 'ggdfgdvsreckuscenusekubsvbd',
        'username' => $request->email,
        'password' => $request->password,
        'scope' => '',
    ];

    $request = Request::create('/oauth/token', 'POST', $data);

    return app()->handle($request);

有没有一种方法可以将 $request 响应转换为变量,然后使用标准 response->json 将其返回?

如果我按原样返回 $request,它不会给我return app()->handle($request); 行给我的任何数据,即令牌、刷新令牌等

我可以在我的 API 中使用除此之外的所有其他 POST 方法。

【问题讨论】:

    标签: laravel cors laravel-passport


    【解决方案1】:

    你可以这样试试。它基本上是从另一个请求启动一个新请求

    $data = [
            'grant_type' => 'password',
            'client_id' => 2,
            'client_secret' => 'ggdfgdvsreckuscenusekubsvbd',
            'username' => $request->email,
            'password' => $request->password,
            'scope' => '',
        ];
    
    $request = app()->make('request');
    $request->request->add($data);
    
    $tokenRequest = Request::create(
                env('APP_URL') . '/oauth/token',
                'post'
            );
    
    return Route::dispatch($tokenRequest);
    

    【讨论】:

      【解决方案2】:

      调度路由并在内部处理响应,而不是返回不同的标头

      protected function attemptLogin(Request $request)
      {
          // forward the request to the oauth token request endpoint
          $res = Route::dispatch(request()->create('oauth/token', 'POST', $data));
          // Return true or false based on response status code
          return $res->getStatusCode() === 200 ? true : false;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-09-17
        • 2023-02-14
        • 1970-01-01
        • 2016-08-09
        • 1970-01-01
        • 2021-01-27
        • 2021-10-07
        • 2015-11-19
        相关资源
        最近更新 更多