/
denispirit
/
lara
Обзор
Документация
Войти
/
denispirit
/
lara
Код
Запросы
0
Задачи
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
app/Http/Controllers/UserController.php
106 строк
3 KB
Денис Сергеевич Спиридонов
Initial commit
23 сен 2024, 13:39
23 сен 2024, 13:39
29535ea
Код
Авторство
О чём код?
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\User; use Illuminate\Auth\Events\Registered; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Password; use Illuminate\Support\Str; use Illuminate\Auth\Events\PasswordReset; class UserController extends Controller { public function create() { return view('user.create'); } public function store (Request $request) { $request->validate([ 'name'=>['required', 'max:225'], 'email'=>['required', 'email', 'max:255', 'unique:users'], 'password'=>['required', 'confirmed'] ]); $user = User::create($request->all()); event(new Registered($user)); Auth::login($user); return redirect() -> route('verification.notice'); } public function login() { return view('user.login'); } public function loginAuth (Request $request) { $credentials = $request->validate([ 'email'=>['required', 'email'], 'password'=>['required'] ]); if (Auth::attempt($credentials, $request->boolean('remember'))){ $request->session()->regenerate(); return redirect()->intended('dashboard')->with('success', 'Welcome, '.Auth::user()->name.'!'); } return back()->withErrors([ 'email'=>'Wrong email or password', ]); } public function logout() { Auth::logout(); return redirect()->route('login'); } public function dashboard() { return view('user.dashboard'); } public function forgotPasswordStore(Request $request) { $request->validate(['email' => 'required|email']); $status = Password::sendResetLink( $request->only('email') ); return $status === Password::RESET_LINK_SENT ? back()->with(['success' => __($status)]) : back()->withErrors(['email' => __($status)]); } public function resetPasswordUpdate(Request $request) { $request->validate([ 'token' => 'required', 'email' => 'required|email', 'password' => 'required|min:6|confirmed', ]); $status = Password::reset( $request->only('email', 'password', 'password_confirmation', 'token'), function (User $user, string $password) { $user->forceFill([ 'password' => $password ])->setRememberToken(Str::random(60)); $user->save(); event(new PasswordReset($user)); } ); return $status === Password::PASSWORD_RESET ? redirect()->route('login')->with('success', __($status)) : back()->withErrors(['email' => [__($status)]]); } }