add UsersController, Auth

parent 40c118af
<?php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
class UserController extends Controller
{
public function create() {
return view('user.create');
}
public function store(Request $request) {
$request->validate([
'name' => 'required',
'email' => 'required|email|unique:users',
'password' => 'required|confirmed',
]);
//dd($request->all());
session()->flash('success', 'Successful registration');
$user = User::create([
'name' => $request->name, // || 'name' => $request->input('name'),
'email' => $request->email,
'password' => Hash::make($request->password),
]);
session()->flash('success', 'Successful registration');
Auth::login($user);
return redirect()->route('home'); // || redirect()->home(); || redirect('/');
}
public function loginForm() {
return view('user.login');
}
public function login(Request $request) {
$request->validate([
'email' => 'required|email',
'password' => 'required',
]);
//dd($request->all());
if (Auth::attempt([
'email' => $request->email,
'password' => $request->password,
])) {
return redirect()->route('home');
}
return redirect()->back()->with('error', 'Incorrect login or password');
}
public function logout(Request $request) {
Auth::logout();
return redirect()->route('login.create');
}
public function settings() {
if (Auth::check()) {
return view('user.settings');
} else {
$message = 'Пользователь не авторизован!';
return view('errors.error', compact('message'));
}
}
}
......@@ -3,6 +3,7 @@
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Schema;
class AppServiceProvider extends ServiceProvider
{
......@@ -19,7 +20,7 @@ class AppServiceProvider extends ServiceProvider
*/
public function boot(): void
{
//
Schema::defaultStringLength(191);
\URL::forceScheme('https');
}
}
......@@ -70,7 +70,7 @@ return [
|
*/
'timezone' => 'UTC',
'timezone' => 'Europe/Kiev',
/*
|--------------------------------------------------------------------------
......
@extends('layouts.layout')
@section('content')
<!-- ======= Auth Section ======= -->
<section id="auth" class="auth">
<div class="container">
<h4>Авторизацiя</h4>
<p>Виконайте вхiд</p>
<form method="post" action="{{ route('register.store') }}">
@csrf
<div class="form-group">
<label for='email'>email</label>
<input class="form-control" type="email" id="email" name="email">
</div>
<div class="form-group">
<label for='name'>Ваше имя</label>
<input class="form-control" type="password" id="password" name="password">
</div>
<input class="btn btn-primary" type="submit" value="Вхiд">
</form>
<a class="" href="{{ route('register.create') }}">Регiстрацiя</a>
</div>
</section><!-- End Auth Section -->
@endsection
\ No newline at end of file
@extends('layouts.layout')
@section('content')
<section>
<div class='container'>
<h1>{{ $message }}</h1>
</div>
</section>
@endsection
@extends('layout')
@extends('layouts.layout')
@section('head_content')
@php
//dump(Auth::check());
//dump(auth()->check());
@endphp
@endsection
@section('content')
......
<div class="mt-5">
@if(session('success'))
<div class="alert alert-success">
{{ session('success') }}
</div>
@endif
@if(session('error'))
<div class="alert alert-danger">
{{ session('error') }}
</div>
@endif
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
</div>
\ No newline at end of file
......@@ -5,7 +5,8 @@
<meta charset="utf-8">
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<title>{{ config('project.title') }}</title>
<title>@section('title')@show{{ config('project.title') }}</title>
<meta content="" name="description">
<meta content="" name="keywords">
......@@ -17,7 +18,7 @@
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i|Raleway:300,300i,400,400i,500,500i,600,600i,700,700i|Poppins:300,300i,400,400i,500,500i,600,600i,700,700i" rel="stylesheet">
<!-- CSS Files -->
<!--
<link href="assets/vendor/aos/aos.css" rel="stylesheet">
<link href="assets/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<link href="assets/vendor/bootstrap-icons/bootstrap-icons.css" rel="stylesheet">
......@@ -27,8 +28,10 @@
<link href="assets/vendor/swiper/swiper-bundle.min.css" rel="stylesheet">
<link href="assets/css/style.css" rel="stylesheet">
-->
<!--
<link href="{{ asset('css/styles.css') }}" rel="stylesheet">
-->
</head>
......@@ -38,16 +41,31 @@
<header id="header" class="fixed-top">
<div class="container d-flex align-items-center justify-content-between">
<h1 class="logo"><a href="{{ route('home') }}">{{ config('project.name') }}</a></h1>
@auth
<a class="" href="{{ url('settings') }}">Налаштування</a>
<a class="" href="{{ route('logout') }}">Вийти</a>
@else
<a class="" href="{{ route('login.create') }}">Вхiд</a>
<a class="" href="{{ route('register.create') }}">Регiстрацiя</a>
@endauth
@yield('head_content')
</div>
</header><!-- End Header -->
<main id="main">
<div class="container">
@include('layouts.alerts')
</div>
@yield('content')
@yield('content')
</main><!-- End #main -->
@include('footer')
@include('layouts.footer')
<!-- JS Files -->
<!--
......
@extends('layouts.layout')
@section('title')Регiстрацiя @endsection
@section('content')
<section id="register" class="register">
<div class='container'>
<h4>Регiстрацiя</h4>
<form method="post" action="{{ route('register.store') }}">
@csrf
<div class="form-group">
<label for='name'>Ваше имя</label>
<input class="form-control" type="text" id="name" name="name" value="{{ old('name') }}">
</div>
<div class="form-group">
<label for='email'>Email address</label>
<input class="form-control" type="email" id="email" name="email" value="{{ old('email') }}">
</div>
<div class="form-group">
<label for='password'>Password</label>
<input class="form-control" type="password" id="password" name="password">
</div>
<div class="form-group">
<label for='password_confirmation'>Confirm password</label>
<input class="form-control" type="password" id="password_confirmation" name="password_confirmation">
</div>
<button type="submit" class="btn btn-primary">Send</button>
</form>
<a class="" href="{{ route('login.create') }}">Вхiд</a>
</div>
</section>
@endsection
@extends('layouts.layout')
@section('title')Авторизацiя @endsection
@section('content')
<section>
<div class='container'>
<h4>Авторизацiя</h4>
<form method="post" action="{{ route('login') }}">
@csrf
<div class="form-group">
<label for='email'>Email address</label>
<input class="form-control" type="email" id="email" name="email" value="{{ old('email') }}">
</div>
<div class="form-group">
<label for='password'>Password</label>
<input class="form-control" type="password" id="password" name="password">
</div>
<button type="submit" class="btn btn-primary">Войти</button>
</form>
<a class="" href="{{ route('register.create') }}">Регiстрацiя</a>
</div>
</section>
@endsection
@extends('layouts.layout')
@section('title')Налаштування @endsection
@section('content')
<section>
<div class='container'>
<h4>Налаштування {{ auth()->user()->name }}</h4>
</div>
</section>
@endsection
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Route;
/*
......@@ -16,3 +18,14 @@ use Illuminate\Support\Facades\Route;
Route::get('/', function () {
return view('home');
}) -> name('home');
Route::get('/register', [UserController::class, 'create']) -> name('register.create');
Route::post('/register', [UserController::class, 'store']) -> name('register.store');
Route::get('/login', [UserController::class, 'loginForm']) -> name('login.create');
Route::post('/login', [UserController::class, 'login']) -> name('login');
Route::get('/logout', [UserController::class, 'logout']) -> name('logout');
Route::get('/settings', [UserController::class, 'settings']) -> name('settings');
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment