Laravel cors 在尝试 运行 Request::create 时抛出错误
Laravel cors throws error when trying to run Request::create
我的 Laravel Passport API 有一个自定义登录方法。
我正在使用 Request::create
从我的登录方法中调用 /oauth/token 端点。
问题是在我的 React 项目中,我收到了 CORS 错误。
错误仅在使用登录方法时发生,我想我已经将其追溯到数据的处理方式 'returned'
我使用的是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 响应转换为变量,然后 return 使用标准 response->json
?
如果我 return 按原样处理 $request,它不会给我 return app()->handle($request);
行给我的任何数据,即令牌、刷新令牌等
我可以在我的 API 中使用所有其他 POST 方法,除了这个。
调度路由并在内部处理响应,而不是返回不同的 headers
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;
}
你可以这样试试。它基本上是从另一个请求发起一个新请求
$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);
我的 Laravel Passport API 有一个自定义登录方法。
我正在使用 Request::create
从我的登录方法中调用 /oauth/token 端点。
问题是在我的 React 项目中,我收到了 CORS 错误。
错误仅在使用登录方法时发生,我想我已经将其追溯到数据的处理方式 'returned'
我使用的是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 响应转换为变量,然后 return 使用标准 response->json
?
如果我 return 按原样处理 $request,它不会给我 return app()->handle($request);
行给我的任何数据,即令牌、刷新令牌等
我可以在我的 API 中使用所有其他 POST 方法,除了这个。
调度路由并在内部处理响应,而不是返回不同的 headers
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;
}
你可以这样试试。它基本上是从另一个请求发起一个新请求
$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);