Skip to content

Commit a891973

Browse files
committed
install laravel breeze
1 parent be9b827 commit a891973

File tree

63 files changed

+4518
-250
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+4518
-250
lines changed
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\Auth;
4+
5+
use App\Http\Controllers\Controller;
6+
use App\Http\Requests\Auth\LoginRequest;
7+
use Illuminate\Http\RedirectResponse;
8+
use Illuminate\Http\Request;
9+
use Illuminate\Support\Facades\Auth;
10+
use Illuminate\View\View;
11+
12+
class AuthenticatedSessionController extends Controller
13+
{
14+
/**
15+
* Display the login view.
16+
*/
17+
public function create(): View
18+
{
19+
return view('auth.login');
20+
}
21+
22+
/**
23+
* Handle an incoming authentication request.
24+
*/
25+
public function store(LoginRequest $request): RedirectResponse
26+
{
27+
$request->authenticate();
28+
29+
$request->session()->regenerate();
30+
31+
return redirect()->intended(route('dashboard', absolute: false));
32+
}
33+
34+
/**
35+
* Destroy an authenticated session.
36+
*/
37+
public function destroy(Request $request): RedirectResponse
38+
{
39+
Auth::guard('web')->logout();
40+
41+
$request->session()->invalidate();
42+
43+
$request->session()->regenerateToken();
44+
45+
return redirect('/');
46+
}
47+
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\Auth;
4+
5+
use App\Http\Controllers\Controller;
6+
use Illuminate\Http\RedirectResponse;
7+
use Illuminate\Http\Request;
8+
use Illuminate\Support\Facades\Auth;
9+
use Illuminate\Validation\ValidationException;
10+
use Illuminate\View\View;
11+
12+
class ConfirmablePasswordController extends Controller
13+
{
14+
/**
15+
* Show the confirm password view.
16+
*/
17+
public function show(): View
18+
{
19+
return view('auth.confirm-password');
20+
}
21+
22+
/**
23+
* Confirm the user's password.
24+
*/
25+
public function store(Request $request): RedirectResponse
26+
{
27+
throw_unless(Auth::guard('web')->validate([
28+
'email' => $request->user()->email,
29+
'password' => $request->password,
30+
]), ValidationException::withMessages([
31+
'password' => __('auth.password'),
32+
]));
33+
34+
$request->session()->put('auth.password_confirmed_at', time());
35+
36+
return redirect()->intended(route('dashboard', absolute: false));
37+
}
38+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\Auth;
4+
5+
use App\Http\Controllers\Controller;
6+
use Illuminate\Http\RedirectResponse;
7+
use Illuminate\Http\Request;
8+
9+
class EmailVerificationNotificationController extends Controller
10+
{
11+
/**
12+
* Send a new email verification notification.
13+
*/
14+
public function store(Request $request): RedirectResponse
15+
{
16+
if ($request->user()->hasVerifiedEmail()) {
17+
return redirect()->intended(route('dashboard', absolute: false));
18+
}
19+
20+
$request->user()->sendEmailVerificationNotification();
21+
22+
return back()->with('status', 'verification-link-sent');
23+
}
24+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\Auth;
4+
5+
use App\Http\Controllers\Controller;
6+
use Illuminate\Http\RedirectResponse;
7+
use Illuminate\Http\Request;
8+
use Illuminate\View\View;
9+
10+
class EmailVerificationPromptController extends Controller
11+
{
12+
/**
13+
* Display the email verification prompt.
14+
*/
15+
public function __invoke(Request $request): RedirectResponse|View
16+
{
17+
return $request->user()->hasVerifiedEmail()
18+
? redirect()->intended(route('dashboard', absolute: false))
19+
: view('auth.verify-email');
20+
}
21+
}
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\Auth;
4+
5+
use App\Http\Controllers\Controller;
6+
use App\Models\User;
7+
use Illuminate\Auth\Events\PasswordReset;
8+
use Illuminate\Http\RedirectResponse;
9+
use Illuminate\Http\Request;
10+
use Illuminate\Support\Facades\Hash;
11+
use Illuminate\Support\Facades\Password;
12+
use Illuminate\Support\Str;
13+
use Illuminate\Validation\Rules;
14+
use Illuminate\Validation\ValidationException;
15+
use Illuminate\View\View;
16+
17+
class NewPasswordController extends Controller
18+
{
19+
/**
20+
* Display the password reset view.
21+
*/
22+
public function create(Request $request): View
23+
{
24+
return view('auth.reset-password', ['request' => $request]);
25+
}
26+
27+
/**
28+
* Handle an incoming new password request.
29+
*
30+
* @throws ValidationException
31+
*/
32+
public function store(Request $request): RedirectResponse
33+
{
34+
$request->validate([
35+
'token' => ['required'],
36+
'email' => ['required', 'email'],
37+
'password' => ['required', 'confirmed', Rules\Password::defaults()],
38+
]);
39+
40+
// Here we will attempt to reset the user's password. If it is successful we
41+
// will update the password on an actual user model and persist it to the
42+
// database. Otherwise we will parse the error and return the response.
43+
$status = Password::reset(
44+
$request->only('email', 'password', 'password_confirmation', 'token'),
45+
function (User $user) use ($request): void {
46+
$user->forceFill([
47+
'password' => Hash::make($request->password),
48+
'remember_token' => Str::random(60),
49+
])->save();
50+
51+
event(new PasswordReset($user));
52+
}
53+
);
54+
55+
// If the password was successfully reset, we will redirect the user back to
56+
// the application's home authenticated view. If there is an error we can
57+
// redirect them back to where they came from with their error message.
58+
return $status == Password::PASSWORD_RESET
59+
? to_route('login')->with('status', __($status))
60+
: back()->withInput($request->only('email'))
61+
->withErrors(['email' => __($status)]);
62+
}
63+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\Auth;
4+
5+
use App\Http\Controllers\Controller;
6+
use Illuminate\Http\RedirectResponse;
7+
use Illuminate\Http\Request;
8+
use Illuminate\Support\Facades\Hash;
9+
use Illuminate\Validation\Rules\Password;
10+
11+
class PasswordController extends Controller
12+
{
13+
/**
14+
* Update the user's password.
15+
*/
16+
public function update(Request $request): RedirectResponse
17+
{
18+
$validated = $request->validateWithBag('updatePassword', [
19+
'current_password' => ['required', 'current_password'],
20+
'password' => ['required', Password::defaults(), 'confirmed'],
21+
]);
22+
23+
$request->user()->update([
24+
'password' => Hash::make($validated['password']),
25+
]);
26+
27+
return back()->with('status', 'password-updated');
28+
}
29+
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\Auth;
4+
5+
use App\Http\Controllers\Controller;
6+
use Illuminate\Http\RedirectResponse;
7+
use Illuminate\Http\Request;
8+
use Illuminate\Support\Facades\Password;
9+
use Illuminate\Validation\ValidationException;
10+
use Illuminate\View\View;
11+
12+
class PasswordResetLinkController extends Controller
13+
{
14+
/**
15+
* Display the password reset link request view.
16+
*/
17+
public function create(): View
18+
{
19+
return view('auth.forgot-password');
20+
}
21+
22+
/**
23+
* Handle an incoming password reset link request.
24+
*
25+
* @throws ValidationException
26+
*/
27+
public function store(Request $request): RedirectResponse
28+
{
29+
$request->validate([
30+
'email' => ['required', 'email'],
31+
]);
32+
33+
// We will send the password reset link to this user. Once we have attempted
34+
// to send the link, we will examine the response then see the message we
35+
// need to show to the user. Finally, we'll send out a proper response.
36+
$status = Password::sendResetLink(
37+
$request->only('email')
38+
);
39+
40+
return $status == Password::RESET_LINK_SENT
41+
? back()->with('status', __($status))
42+
: back()->withInput($request->only('email'))
43+
->withErrors(['email' => __($status)]);
44+
}
45+
}
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\Auth;
4+
5+
use App\Http\Controllers\Controller;
6+
use App\Models\User;
7+
use Illuminate\Auth\Events\Registered;
8+
use Illuminate\Http\RedirectResponse;
9+
use Illuminate\Http\Request;
10+
use Illuminate\Support\Facades\Auth;
11+
use Illuminate\Support\Facades\Hash;
12+
use Illuminate\Validation\Rules\Password;
13+
use Illuminate\Validation\ValidationException;
14+
use Illuminate\View\View;
15+
16+
class RegisteredUserController extends Controller
17+
{
18+
/**
19+
* Display the registration view.
20+
*/
21+
public function create(): View
22+
{
23+
return view('auth.register');
24+
}
25+
26+
/**
27+
* Handle an incoming registration request.
28+
*
29+
* @throws ValidationException
30+
*/
31+
public function store(Request $request): RedirectResponse
32+
{
33+
$request->validate([
34+
'name' => ['required', 'string', 'max:255'],
35+
'email' => ['required', 'string', 'lowercase', 'email', 'max:255', 'unique:'.User::class],
36+
'password' => ['required', 'confirmed', Password::defaults()],
37+
]);
38+
39+
$user = User::query()->create([
40+
'name' => $request->name,
41+
'email' => $request->email,
42+
'password' => Hash::make($request->password),
43+
]);
44+
45+
event(new Registered($user));
46+
47+
Auth::login($user);
48+
49+
return redirect(route('dashboard', absolute: false));
50+
}
51+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\Auth;
4+
5+
use App\Http\Controllers\Controller;
6+
use Illuminate\Auth\Events\Verified;
7+
use Illuminate\Foundation\Auth\EmailVerificationRequest;
8+
use Illuminate\Http\RedirectResponse;
9+
10+
class VerifyEmailController extends Controller
11+
{
12+
/**
13+
* Mark the authenticated user's email address as verified.
14+
*/
15+
public function __invoke(EmailVerificationRequest $request): RedirectResponse
16+
{
17+
if ($request->user()->hasVerifiedEmail()) {
18+
return redirect()->intended(route('dashboard', absolute: false).'?verified=1');
19+
}
20+
21+
if ($request->user()->markEmailAsVerified()) {
22+
event(new Verified($request->user()));
23+
}
24+
25+
return redirect()->intended(route('dashboard', absolute: false).'?verified=1');
26+
}
27+
}

0 commit comments

Comments
 (0)