PHPackages                             r4v/laravel-registration-validator - 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. [Mail &amp; Notifications](/categories/mail)
4. /
5. r4v/laravel-registration-validator

ActiveLibrary[Mail &amp; Notifications](/categories/mail)

r4v/laravel-registration-validator
==================================

Solid credential validation for Laravel.

v2.0.0(5y ago)07MITPHPPHP &gt;=7.1.0CI failing

Since Feb 14Pushed 5y agoCompare

[ Source](https://github.com/r4v/laravel-registration-validator)[ Packagist](https://packagist.org/packages/r4v/laravel-registration-validator)[ RSS](/packages/r4v-laravel-registration-validator/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (4)Versions (3)Used By (0)

Laravel Registration Validator
==============================

[](#laravel-registration-validator)

*Solid credential validation for Laravel &gt;= 7.x*

This is fork from [photogabble/laravel-registration-validator](https://github.com/photogabble/laravel-registration-validator) that hasn't been maintained for 3 years.

Main goal is to mitigate potential issues caused by *Unicode [homoglyphs](https://en.wikipedia.org/wiki/Homoglyph)*

> a homoglyph is one of two or more graphemes, characters, or glyphs with shapes that **appear identical or very similar**

Here is a [utility](http://unicode.org/cldr/utility/confusables.jsp) to play with these **confusable homoglyphs**. The Unicode Consortium published list of this [confusable](https://www.unicode.org/Public/security/latest/confusables.txt)

---

[![Build Status](https://camo.githubusercontent.com/24ea795bc205190109f7193765d7810ac67525fb06a6af8ec52db3ed89c60aac/68747470733a2f2f7472617669732d63692e6f72672f7234762f6c61726176656c2d726567697374726174696f6e2d76616c696461746f722e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/r4v/laravel-registration-validator)[![Latest Stable Version](https://camo.githubusercontent.com/698545d6f996f7112a07c7898cca1059540898cb9c335a0d26e776632d5edeca/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f7234762f6c61726176656c2d726567697374726174696f6e2d76616c696461746f722e737667)](https://packagist.org/packages/r4v/laravel-registration-validator)[![License](https://camo.githubusercontent.com/14848a1d612f4f5d1ece3c2222071369e2ca4f3150b76e150358b6152b9e76b1/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f7234762f6c61726176656c2d726567697374726174696f6e2d76616c696461746f722e737667)](LICENSE)

### About this package

[](#about-this-package)

> *An all-Latin username containing confusables is probably fine, and an all-Cyrillic username containing confusables is probably fine, but a username containing mostly Latin plus one Cyrillic code point which happens to be confusable with a Latin one… is not.* - [James Bennet](https://www.b-list.org/weblog/2018/feb/11/usernames/)

I began writing this package soon after reading the above quote from [this article](https://www.b-list.org/weblog/2018/feb/11/usernames/) by James Bennett on registration credential validation that referenced how [Django’s auth system](https://github.com/ubernostrum/django-registration/blob/1d7d0f01a24b916977016c1d66823a5e4a33f2a0/registration/validators.py) validates new users credentials.

In addition to unicode confusables validation this package also includes a PHP port of the reserved name validation that Django's auth system uses.

This is project built for use with Laravel versions &gt;= 7.x and PHP &gt;= 7.1.

### Install

[](#install)

Install this library with composer: `composer require r4v/laravel-registration-validator`.

### Usage

[](#usage)

This package provides three validators: `not-reserved-name`, `not-confusable-string` and `not-confusable-email`.

#### Not Reserved Name Validator

[](#not-reserved-name-validator)

This validator checks the input to ensure it does not contain any strings listed within config key `registration-validation.reserved_list`. To extend this list use the `php artisan vendor:publish` command to copy this config to your project.

#### Not Confusable String Validator

[](#not-confusable-string-validator)

This validator checks the input using the [photogabble/php-confusable-homoglyphs](https://github.com/photogabble/php-confusable-homoglyphs) to ensure it does not contain any confusable unicode characters.

#### Not Confusable Email Validator

[](#not-confusable-email-validator)

This validator does not validate that the input is a valid email address, instead it validates that a string containing an `@` does not contain any confusable unicode characters for each part either side of the `@` symbol.

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 88.9% 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

Every ~941 days

Total

2

Last Release

2067d ago

Major Versions

1.0.0 → v2.0.02020-09-13

PHP version history (2 changes)1.0.0PHP &gt;=7.0.0

v2.0.0PHP &gt;=7.1.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/5253a55988895599f7d9865f4121bfcfcd1ad334cba75314320cc6ef15810b08?d=identicon)[r4ven](/maintainers/r4ven)

---

Top Contributors

[![carbontwelve](https://avatars.githubusercontent.com/u/464699?v=4)](https://github.com/carbontwelve "carbontwelve (16 commits)")[![r4v](https://avatars.githubusercontent.com/u/248192?v=4)](https://github.com/r4v "r4v (2 commits)")

---

Tags

laravelvalidationunicodeemailregistrationcredentialsusernamehomoglyphs

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/r4v-laravel-registration-validator/health.svg)

```
[![Health](https://phpackages.com/badges/r4v-laravel-registration-validator/health.svg)](https://phpackages.com/packages/r4v-laravel-registration-validator)
```

###  Alternatives

[erag/laravel-disposable-email

A Laravel package to detect and block disposable email addresses.

226102.4k](/packages/erag-laravel-disposable-email)[kouz/laravel-mailgun-email-validation

Laravel email validation that uses the Mailgun API for a three-step validation check.

11141.0k1](/packages/kouz-laravel-mailgun-email-validation)[ashallendesign/laravel-mailboxlayer

A lightweight Laravel package for validating emails using the Mailbox Layer API.

762.0k](/packages/ashallendesign-laravel-mailboxlayer)[martian/spammailchecker

A laravel package that protect users from entering non-existing/spam email addresses.

422.0k](/packages/martian-spammailchecker)

PHPackages © 2026

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