логин

This commit is contained in:
Toy Rik 2026-02-10 07:10:16 +03:00
parent 9b0bca7a21
commit c45c53d4fb
15 changed files with 2560 additions and 283 deletions

View File

@ -2,6 +2,8 @@ PROJECT_NAME=js-manager
NGINX_PORT=8010 NGINX_PORT=8010
HMR_PORT=8080
DB_CONNECTION=pgsql DB_CONNECTION=pgsql
DB_HOST=postgres DB_HOST=postgres
DB_PORT=5433 DB_PORT=5433

View File

@ -24,4 +24,4 @@ app-init:
docker compose run --rm php php artisan key:generate docker compose run --rm php php artisan key:generate
app-db-seed: app-db-seed:
docker compose run --rm php-cli php artisan migrate --seed docker compose run --rm php php artisan migrate --seed

View File

@ -18,7 +18,7 @@ services:
args: args:
- UID=${UID:-1000} - UID=${UID:-1000}
- GID=${GID:-1000} - GID=${GID:-1000}
- USER=${USER-laravel} - USER=${USER:-laravel}
volumes: volumes:
- ./src:/app - ./src:/app
working_dir: /app working_dir: /app
@ -31,6 +31,26 @@ services:
aliases: aliases:
- backend - backend
node:
image: node:22-alpine
container_name: ${PROJECT_NAME}-node
working_dir: /app
volumes:
- ./src:/app
- /app/node_modules
ports:
- "${HMR_PORT}:8080"
- "5173:5173"
restart: unless-stopped
networks:
back_net:
aliases:
- node
environment:
- NODE_ENV=development
command: sh -c "npm install && npm run dev"
nginx: nginx:
container_name: ${PROJECT_NAME}-nginx-local container_name: ${PROJECT_NAME}-nginx-local
build: build:

View File

@ -38,7 +38,7 @@ BROADCAST_CONNECTION=log
FILESYSTEM_DISK=local FILESYSTEM_DISK=local
QUEUE_CONNECTION=database QUEUE_CONNECTION=database
CACHE_STORE=database CACHE_STORE=redis
# CACHE_PREFIX= # CACHE_PREFIX=
MEMCACHED_HOST=127.0.0.1 MEMCACHED_HOST=127.0.0.1

View File

@ -44,5 +44,34 @@ class FortifyServiceProvider extends ServiceProvider
RateLimiter::for('two-factor', function (Request $request) { RateLimiter::for('two-factor', function (Request $request) {
return Limit::perMinute(5)->by($request->session()->get('login.id')); return Limit::perMinute(5)->by($request->session()->get('login.id'));
}); });
// Custom routes defined specifically
Fortify::registerView(function () {
return view('auth.register');
});
Fortify::loginView(function () {
return view('auth.login');
});
Fortify::verifyEmailView(function () {
return view('auth.verify-mail');
});
Fortify::requestPasswordResetLinkView(function () {
return view('auth.forgot-password');
});
Fortify::resetPasswordView(function (Request $request) {
return view('auth.reset-password', ['request' => $request]);
});
Fortify::confirmPasswordView(function () {
return view('auth.confirm-password');
});
Fortify::twoFactorChallengeView(function () {
return view('auth.two-factor-challange');
});
} }
} }

View File

@ -73,7 +73,7 @@ return [
| |
*/ */
'home' => '/home', 'home' => '/dashboard',
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------

2421
src/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,47 @@
@extends('layouts.default')
@section('content')
<form method="POST" action="{{ route('login') }}">
@csrf
<!-- Поле Email -->
<div class="sm:col-span-1">
<label for="email">Email:</label>
<input
type="email"
id="email"
name="email"
value="{{ old('email') }}"
placeholder="Enter your email"
required
autocomplete="username"
/>
@error('email')
<p class="w-full text-red-500">{{ $message }}</p>
@enderror
</div>
<!-- Поле Пароль -->
<div class="sm:col-span-1 mt-4">
<label for="password">Password:</label>
<input
type="password"
id="password"
name="password"
placeholder="Enter your password"
required
autocomplete="current-password"
/>
@error('password')
<p class="w-full text-red-500">{{ $message }}</p>
@enderror
</div>
<!-- Кнопка входа -->
<div class="mt-6">
<button type="submit">
Войти
</button>
</div>
</form>
@endsection

View File

@ -0,0 +1,6 @@
@extends ('layouts.default')
@section ('content')
<h1>dashboard</h1>
@dump(auth()->user())
@endsection

View File

@ -0,0 +1,8 @@
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
@include('layouts.partials.head')
</head>
<body>
@yield('content')
</body>

View File

@ -0,0 +1,6 @@
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta name="csrf-token" content="{{ csrf_token() }}">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
@vite(['resources/css/app.css', 'resources/js/app.js'])
<title>{{ config('app.name', 'Laravel') }} | @yield('title')</title>

View File

@ -0,0 +1,5 @@
@extends ('layouts.default')
@section ('content')
<a href="{{route('login')}}">login</a>
@endsection

File diff suppressed because one or more lines are too long

View File

@ -5,5 +5,9 @@ declare(strict_types=1);
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
Route::get('/', function () { Route::get('/', function () {
return view('welcome'); return view('main');
}); });
Route::get('dashboard', function () {
return view('dashboard');
})->middleware(['auth', 'verified']);

View File

@ -14,5 +14,11 @@ export default defineConfig({
watch: { watch: {
ignored: ['**/storage/framework/views/**'], ignored: ['**/storage/framework/views/**'],
}, },
host: '0.0.0.0',
port: 5173,
hmr: {
host: '127.0.0.1',
port: 5173,
},
}, },
}); });