基于laravel 8的子域CORS策略问题



我在example.domain.com上传了我的Laravel项目,在另一个子域名subdomain.domain.com上传了angular项目,但在登录系统时遇到了CORS策略问题。

login.service.ts .

readonly baseURL = 'https://www.example.domain.com/api';
httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*'
})
}
login(data:any){
return this.http.post(this.baseURL + '/auth/login/', data ,this.httpOptions);
}

api.php

Route::group([
'middleware' => 'api',
'prefix' => 'auth'
], function ($router) {
Route::post('/login', [AuthController::class, 'login']);
});

AuthController.php

public function login(Request $request){
$validator = Validator::make($request->all(), [
'email' => 'required|email',
'password' => 'required|string|min:6',
]);
// return response()->json($validator, 200);
if ($validator->fails()) {
return response()->json($validator->errors(), 422);
}
if (! $token = Auth::attempt($validator->validated())) {
return response()->json(['error' => 'Either email or password is wrong.'], 401);
}
return $this->createNewToken($token);
}
protected function createNewToken($token){
return response()->json([
'access_token' => $token,
'token_type' => 'bearer',
'expires_in' => auth()->factory()->getTTL() * 60,
'user' => auth()->user()
]);
}

您可以使用laravel cors供应商来处理cors错误。

https://github.com/fruitcake/laravel-cors

最新更新