Release
tbtop/admin 0.7: sign-in and password reset
tbtop/admin 0.7 ships a sign-in page, a password reset flow and panel logout. One installer flag puts them in your app, as files you own.
Until now a panel needed sign-in from somewhere else: Breeze, Fortify or your own controllers. From 0.7, tbtop/admin ships the screens itself, written in the same PHP DSL as the rest of your admin.
What ships
- A sign-in page with throttling, session renewal and a redirect back to the page the user asked for.
- Forgot password and reset password pages. The reset mail links to the panel, not to your app's own reset route.
- Logout for every panel, and the signed-in user shared with the React client.
Everything runs on the panel's own guard, never the app default. An admin guard on its own user provider works too: give the panel its password broker and the reset flow follows it.
Files you own
Run the installer with --auth and it publishes three pages into app/Admin/Pages/Auth. Each is an empty subclass of a package base page: the behaviour, and its fixes, keep coming from the package, and you override only the hook you need — the credentials, a 2FA step after sign-in, the redirect, the throttle or the password rules. Delete a file and that screen is gone. Without the flag, nothing changes.
php artisan admin:install --authOne manual step remains: point Laravel's guest redirect at the panel login in bootstrap/app.php. The installer prints the line.
What it does not do
Registration, email verification, passkeys and 2FA are not in the package. The public demo builds its 2FA on the sign-in hook, which is the way to add your own.
Upgrade
Upgrade tbtop/admin and @tbtop/inertia-admin together to 0.7, then read the authentication guide for the hooks and the password broker setting. Every change in the release is in the changelog.