# 1.- Primeros pasos
# Vamos a comenzar con la creación de un proyecto en laravel para la Api Backend
composer create-project laravel/laravel:^8.0 example-app
Instalar laravel Breeze and dependecies...
Durante la instalación, Breeze agregará una FRONTEND_URLvariable de entorno al .envarchivo de su aplicación. Esta URL debe ser la URL de su aplicación JavaScript. Esto será típicamente http://localhost:3000durante el desarrollo local.
composer require laravel/breeze:1.9.2
Ir a phpMyadmin y crear la base de datos con el mismo nombre que está en el archivo .env
php artisan migrate
# Sí tienen problemas con la Api en Windows continue con estos pasos
# Próximo
Asegúrese de que las variables de su aplicación
APP_URL
estén establecidas respectivamente.FRONTEND_URL
http://localhost:8000
http://localhost:3000
En
app/Providers/RouteServiceProvider.php
, actualizar:public const HOME = '/';
En
app/Http/Middleware/Authenticate.php
, actualizar:
protected function redirectTo($request)
{
if (! $request->expectsJson()) {
return config('app.frontend_url').'/login?next_to='.urlencode($request->url());
}
}
- En
app/Http/Middleware/RedirectIfAuthenticated.php
, actualizar:
public function handle(Request $request, Closure $next, ...$guards)
{
$guards = empty($guards) ? [null] : $guards;
foreach ($guards as $guard) {
if (Auth::guard($guard)->check()) {
return redirect(config('app.frontend_url').RouteServiceProvider::HOME);
}
}
return $next($request);
}
- En
confing/cors.php
, actualizar:
<?php
$frontedUrl = env('FRONTEND_URL', '*');
if ($frontedUrl !== '*') {
$parsed = parse_url($frontedUrl);
$frontedUrl = sprintf(
'%s://%s%s',
$parsed['scheme'],
$parsed['host'],
isset($parsed['port']) ? ':' . $parsed['port'] : ''
);
}
return [
/*
|--------------------------------------------------------------------------
| Cross-Origin Resource Sharing (CORS) Configuration
|--------------------------------------------------------------------------
|
| Here you may configure your settings for cross-origin resource sharing
| or "CORS". This determines what cross-origin operations may execute
| in web browsers. You are free to adjust these settings as needed.
|
| To learn more: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
|
*/
'paths' => ['*'],
'allowed_methods' => ['*'],
'allowed_origins' => [$frontedUrl],
'allowed_origins_patterns' => [],
'allowed_headers' => ['*'],
'exposed_headers' => [],
'max_age' => 0,
'supports_credentials' => true,
];
Después de definir las variables de entorno apropiadas y actualizar varios códigos anteriores, puede servir la aplicación Laravel usando
# server the application
php artisan serve
# Implementación de referencia para Next.js en el frontend
Finalmente, está listo para emparejar este backend con el frontend de su elección. Una implementación de referencia de Next de la interfaz Breeze está disponible en GitHub (opens new window) .
Este repositorio es una implementación de la interfaz del kit de inicio de autenticación/aplicación Laravel Breeze en Next.js. Toda la plantilla de autenticación ya está escrita para usted, impulsada por Laravel Sanctum , lo que le permite comenzar a emparejar rápidamente su hermoso frontend Next.js con un poderoso backend de Laravel.
A continuación, clone este repositorio e instale sus dependencias con yarn installo npm install. Luego, copie el .env.examplearchivo .env.localy proporcione la URL de su backend:
NEXT_PUBLIC_BACKEND_URL=http://localhost:8000
Finalmente, ejecute la aplicación a través de npm run dev. La aplicación estará disponible en http://localhost:3000:
npm run dev
WARNING
Nota: Actualmente, recomendamos usar localhostdurante el desarrollo local de su backend y frontend para evitar problemas de "mismo origen" de CORS.