PHPackages                             schilinskialexander/moonshine-register - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. schilinskialexander/moonshine-register

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

schilinskialexander/moonshine-register
======================================

Registration page for MoonShine v4 authentication.

1.0.0(today)01↑2900%MITPHPPHP ^8.3

Since Jun 19Pushed todayCompare

[ Source](https://github.com/SchilinskiAlexander/moonshine-register)[ Packagist](https://packagist.org/packages/schilinskialexander/moonshine-register)[ RSS](/packages/schilinskialexander-moonshine-register/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (2)Versions (2)Used By (0)

MoonShine Register
==================

[](#moonshine-register)

[Deutsch](README.de.md) | [Русский](README.ru.md)

Registration and password reset pages for [MoonShine v4](https://moonshine-laravel.com/) authentication.

This package adds a public registration flow to the MoonShine admin login area. It can also replace the default MoonShine login page with a version that links to registration and password reset pages.

Features
--------

[](#features)

- Admin registration page inside the MoonShine route group
- Optional password reset flow for MoonShine users
- Optional automatic login after registration
- Configurable route names and page classes
- Configurable default MoonShine role
- English and German translations
- Laravel package auto-discovery

Requirements
------------

[](#requirements)

- PHP `^8.3`
- Laravel components `^12.0` or `^13.0`
- MoonShine `^4.15`

Installation
------------

[](#installation)

Install the package with Composer:

```
composer require schilinskialexander/moonshine-register
```

Laravel discovers the service provider automatically.

Publish the configuration file if you want to customize the package:

```
php artisan vendor:publish --tag=moonshine-register-config
```

Publish translations if you want to edit the language files:

```
php artisan vendor:publish --tag=moonshine-register-lang
```

Run your migrations if the MoonShine tables are not created yet:

```
php artisan migrate
```

What It Adds
------------

[](#what-it-adds)

By default, the package registers these routes under your configured MoonShine prefix.

If your MoonShine prefix is `admin`, the routes are:

MethodURLRoute name`GET``/admin/register``moonshine.register``POST``/admin/register``moonshine.register.store``GET``/admin/forgot-password``moonshine.password.request``POST``/admin/forgot-password``moonshine.password.email``GET``/admin/reset-password/{token}``moonshine.password.reset``POST``/admin/reset-password/{token}``moonshine.password.update`The routes are only registered when MoonShine routes are enabled.

Configuration
-------------

[](#configuration)

After publishing the config file, you can edit:

```
// config/moonshine-register.php
return [
    'enabled' => true,
    'route' => 'register',

    'login_link' => [
        'enabled' => true,
    ],

    'password_reset' => [
        'enabled' => true,
        'route' => 'forgot-password',
        'reset_route' => 'reset-password',
        'broker' => 'moonshine',
    ],

    'auto_login' => false,
    'default_role_id' => 1,
    'role_column' => 'moonshine_user_role_id',
];
```

You can also configure the package through environment variables:

```
MOONSHINE_REGISTER_ENABLED=true
MOONSHINE_REGISTER_ROUTE=register
MOONSHINE_REGISTER_LOGIN_LINK_ENABLED=true

MOONSHINE_REGISTER_PASSWORD_RESET_ENABLED=true
MOONSHINE_REGISTER_PASSWORD_RESET_ROUTE=forgot-password
MOONSHINE_REGISTER_PASSWORD_RESET_RESET_ROUTE=reset-password
MOONSHINE_REGISTER_PASSWORD_RESET_BROKER=moonshine

MOONSHINE_REGISTER_AUTO_LOGIN=false
MOONSHINE_REGISTER_ROLE_ID=1
MOONSHINE_REGISTER_ROLE_COLUMN=moonshine_user_role_id
MOONSHINE_REGISTER_USER_MODEL="SchilinskiAlexander\\MoonShineRegister\\Models\\MoonShineUser"
```

Usage
-----

[](#usage)

After installation, open your MoonShine login page. With the default MoonShine prefix, this is:

```
/admin/login

```

The login page will show links to:

```
/admin/register
/admin/forgot-password

```

New users are created in the MoonShine user table and receive the configured default role.

Password Reset
--------------

[](#password-reset)

The package configures a `moonshine` password broker and uses the MoonShine user provider.

The included user model extends MoonShine's default user model and implements Laravel's password reset contract. This is required so MoonShine users can receive reset notifications.

Make sure your application has the standard password reset token table:

```
php artisan migrate
```

Custom Pages
------------

[](#custom-pages)

You can replace the included pages by changing the config values:

```
'page' => App\MoonShine\Pages\Auth\RegisterPage::class,

'login_link' => [
    'page' => App\MoonShine\Pages\Auth\LoginPage::class,
],

'password_reset' => [
    'request_page' => App\MoonShine\Pages\Auth\ForgotPasswordPage::class,
    'reset_page' => App\MoonShine\Pages\Auth\ResetPasswordPage::class,
],
```

Your custom pages should render forms that submit to the package route names.

Disabling Features
------------------

[](#disabling-features)

Disable the whole package:

```
MOONSHINE_REGISTER_ENABLED=false
```

Disable only password reset:

```
MOONSHINE_REGISTER_PASSWORD_RESET_ENABLED=false
```

Disable only the extra links on the login page:

```
MOONSHINE_REGISTER_LOGIN_LINK_ENABLED=false
```

Testing
-------

[](#testing)

Run the project tests:

```
php artisan test
```

Run only the package-related feature tests:

```
php artisan test tests/Feature/MoonShineRegisterTest.php
```

License
-------

[](#license)

The MIT License.

###  Health Score

41

—

FairBetter than 87% of packages

Maintenance100

Actively maintained with recent releases

Popularity2

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

0d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/658ad872e8a705f7613ffbcbf93f46b7fef3735fd3e4c12bcfd5bcb2d7ca5dd8?d=identicon)[SchilinskiAlexander](/maintainers/SchilinskiAlexander)

---

Top Contributors

[![SchilinskiAlexander](https://avatars.githubusercontent.com/u/130932699?v=4)](https://github.com/SchilinskiAlexander "SchilinskiAlexander (4 commits)")

---

Tags

authlaravelmoonshinemoonshine-packagemoonshine-v4password-resetphpregistrationlaravelauthregistermoonshinemoonshine-v4

### Embed Badge

![Health badge](/badges/schilinskialexander-moonshine-register/health.svg)

```
[![Health](https://phpackages.com/badges/schilinskialexander-moonshine-register/health.svg)](https://phpackages.com/packages/schilinskialexander-moonshine-register)
```

###  Alternatives

[php-open-source-saver/jwt-auth

JSON Web Token Authentication for Laravel and Lumen

83910.6M60](/packages/php-open-source-saver-jwt-auth)[directorytree/ldaprecord-laravel

LDAP Authentication &amp; Management for Laravel.

5742.2M17](/packages/directorytree-ldaprecord-laravel)[auth0/login

Auth0 Laravel SDK. Straight-forward and tested methods for implementing authentication, and accessing Auth0's Management API endpoints.

2795.2M3](/packages/auth0-login)[jurager/teams

Laravel package to manage team functionality and operate with user permissions.

23720.8k](/packages/jurager-teams)[hasinhayder/tyro-login

Tyro Login - Beautiful, customizable authentication views for Laravel 12 &amp; 13

2453.7k5](/packages/hasinhayder-tyro-login)[azate/laravel-telegram-login-auth

Laravel Telegram Login Auth

3719.4k](/packages/azate-laravel-telegram-login-auth)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
