логин
This commit is contained in:
parent
9b0bca7a21
commit
c45c53d4fb
@ -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
|
||||||
|
|||||||
2
Makefile
2
Makefile
@ -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
|
||||||
24
compose.yml
24
compose.yml
@ -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
|
||||||
@ -30,7 +30,27 @@ services:
|
|||||||
redis_net:
|
redis_net:
|
||||||
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:
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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');
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -73,7 +73,7 @@ return [
|
|||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'home' => '/home',
|
'home' => '/dashboard',
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
|
|||||||
2421
src/package-lock.json
generated
Normal file
2421
src/package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
47
src/resources/views/auth/login.blade.php
Normal file
47
src/resources/views/auth/login.blade.php
Normal 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
|
||||||
6
src/resources/views/dashboard.blade.php
Normal file
6
src/resources/views/dashboard.blade.php
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
@extends ('layouts.default')
|
||||||
|
|
||||||
|
@section ('content')
|
||||||
|
<h1>dashboard</h1>
|
||||||
|
@dump(auth()->user())
|
||||||
|
@endsection
|
||||||
8
src/resources/views/layouts/default.blade.php
Normal file
8
src/resources/views/layouts/default.blade.php
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
|
||||||
|
<head>
|
||||||
|
@include('layouts.partials.head')
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
@yield('content')
|
||||||
|
</body>
|
||||||
6
src/resources/views/layouts/partials/head.blade.php
Normal file
6
src/resources/views/layouts/partials/head.blade.php
Normal 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>
|
||||||
5
src/resources/views/main.blade.php
Normal file
5
src/resources/views/main.blade.php
Normal 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
@ -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']);
|
||||||
|
|||||||
@ -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,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user