Titan Guard

Built-in, secure authentication system.

Login
auth()->login($user)
Starts user session
Logout
auth()->logout()
Ends active session
Check
auth()->check()
Checks if session is active
User
auth()->user()
Returns active user object

AuthController

app/Controllers/AuthController.php
public function login(): void
{
    $email    = $this->request()->input('email');
    $password = $this->request()->input('password');
    $user     = User::where('email', $email)->first();

    if ($user && password_verify($password, $user->password)) {
        auth()->login($user);
        redirect('/dashboard');
    }

    $this->view('auth/login', ['error' => 'Invalid credentials']);
}

public function logout(): void
{
    auth()->logout();
    redirect('/');
}

public function register(): void
{
    $data = $this->request()->only(['name', 'email', 'password']);
    $data['password'] = password_hash($data['password'], PASSWORD_BCRYPT);
    auth()->login(User::create($data));
    redirect('/dashboard');
}
Security Note: Block web access to sessions/ via .htaccess.