jonnybarnes.uk/app/Http/Controllers/AuthController.php
Jonny Barnes 03c8f20a8c
feat: Add Passkey support
- Added a button for logging in with Passkeys in `login.blade.php`
- Refactored the `register` method and added the `login` method in `auth.js`
- Made various modifications and additions to the passkey functionality in `PasskeysController.php`
- Added event listener for login-passkey element in `app.js`
- Modified the passkeys table schema and made modifications to `Passkey.php`
- Changed the redirect route in the `login` method of `AuthController.php`
- Made modifications and additions to the routes in `web.php`
- Added `"web-auth/webauthn-lib": "^4.7"` to the list of required packages in `composer.json`
- Changed the redirect URL in `AdminTest.php`
2023-10-27 20:22:40 +01:00

65 lines
1.4 KiB
PHP

<?php
declare(strict_types=1);
namespace App\Http\Controllers;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\View\View;
/**
* @psalm-suppress UnusedClass
*/
class AuthController extends Controller
{
/**
* Show the login form.
*/
public function showLogin(): View|RedirectResponse
{
if (Auth::check()) {
return redirect('/');
}
return view('login');
}
/**
* Log in a user, set a session variable, check credentials against the `.env` file.
*/
public function login(Request $request): RedirectResponse
{
$credentials = $request->only('name', 'password');
if (Auth::attempt($credentials, true)) {
return redirect()->intended('/admin');
}
return redirect()->route('login');
}
/**
* Show the form to allow a user to log-out.
*/
public function showLogout(): View|RedirectResponse
{
if (Auth::check() === false) {
// The user is not logged in, just redirect them home
return redirect('/');
}
return view('logout');
}
/**
* Log the user out from their current session.
*/
public function logout(): RedirectResponse
{
Auth::logout();
return redirect('/');
}
}