PHPackages                             pagemachine/hairu - 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. pagemachine/hairu

Abandoned → [typo3/cms-felogin](/?search=typo3%2Fcms-felogin)ArchivedTypo3-cms-extension[Authentication &amp; Authorization](/categories/authentication)

pagemachine/hairu
=================

Flexible login/logout form based on Extbase/Fluid

3.1.3(3y ago)29154.3k19[3 issues](https://github.com/pagemachine/hairu/issues)GPL-3.0-or-laterPHPPHP ^7.4

Since Nov 14Pushed 2y ago1 watchersCompare

[ Source](https://github.com/pagemachine/hairu)[ Packagist](https://packagist.org/packages/pagemachine/hairu)[ RSS](/packages/pagemachine-hairu/feed)WikiDiscussions master Synced today

READMEChangelog (1)Dependencies (15)Versions (34)Used By (0)

Hairu [![CI](https://github.com/pagemachine/hairu/workflows/CI/badge.svg)](https://github.com/pagemachine/hairu/workflows/CI/badge.svg)
=======================================================================================================================================

[](#hairu-)

Flexible login/logout form based on Extbase/Fluid to replace the *felogin* extension shipped with TYPO3 CMS.

入る (*hairu*, Japanese) means "enter"

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

[](#installation)

This extension is installable from various sources:

1. Via [Composer](https://packagist.org/packages/pagemachine/hairu):

    ```
     composer require pagemachine/hairu

    ```
2. From the [TYPO3 Extension Repository](https://extensions.typo3.org/extension/hairu/)
3. From [Github](https://github.com/pagemachine/hairu/releases)

After installation two new content elements *Authentication form* and *Password edit form* will be available in the *Form elements* section. Make sure to also include the static template.

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

[](#configuration)

After including the static template a few options will be available in the Template Constant Editor for customization.

Make sure you set at least the *Default storage PID* to the page where your frontend user records are stored.

You can also use the `stdWrap` property on any `settings` value for custom processing. Example for easy translation of the password reset mail subject:

```
plugin.tx_hairu {
  settings {
    passwordReset {
      mail {
        subject.stdWrap.data = LLL:.../locallang.xlf:passwordReset.mail.subject
      }
    }
  }
}

```

Password validation
-------------------

[](#password-validation)

The validation rules applied within the password reset and update process can be customized freely through TypoScript. Example from the default configuration:

```
plugin.tx_hairu {
  // ...
  mvc.validation {
    // Validation of Authentication controller action arguments
    Authentication {
      // ...
      completePasswordReset {
        password {
          1 {
            type = StringLength
            options {
              minimum = 5
            }
          }
        }
      }
    }

    Password {
      updatePassword {
        password {
          1 {
            type = StringLength
            options {
              minimum = 5
            }
          }
        }
      }
    }
  }
}

```

You can use any validator type as long as Extbase can resolve it. In the example the builtin `StringLength` validator is set with a minimum length of 5.

The following formats for the validator type are supported:

- Extbase builtin validators: `StringLength` (resolves to `TYPO3\CMS\Extbase\Validation\Validator\StringLengthValidator`)
- Fully qualified class name: `Vendor\Package\Validation\Validator\CustomValidator`
- Shorthand syntax: `Vendor.Package:CustomValidator` (resolves to `Vendor\Package\Validation\Validator\CustomValidator`)

Issues
------

[](#issues)

Found a bug? Need a feature? Let us know through our [issue tracker](https://github.com/pagemachine/hairu/issues).

Testing
-------

[](#testing)

All tests can be executed with the shipped Docker Compose definition:

```
docker-compose run --rm app composer build

```

Credits
-------

[](#credits)

Icons made by [Freepik](http://www.freepik.com) from [www.flaticon.com](https://www.flaticon.com/) is licensed by [CC 3.0 BY](https://creativecommons.org/licenses/by/3.0/)

###  Health Score

42

—

FairBetter than 88% of packages

Maintenance18

Infrequent updates — may be unmaintained

Popularity42

Moderate usage in the ecosystem

Community20

Small or concentrated contributor base

Maturity74

Established project with proven stability

 Bus Factor1

Top contributor holds 90.3% 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 ~96 days

Recently: every ~322 days

Total

32

Last Release

1256d ago

Major Versions

1.4.1 → 2.0.02017-08-14

2.1.3 → 3.0.02019-01-25

PHP version history (5 changes)1.2.1PHP &gt;=5.3

2.0.0PHP ^5.6 || ^7.0

3.0.0PHP ^7.0

3.1.0PHP ^7.2

3.1.3PHP ^7.4

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/10812548?v=4)[Pagemachine AG](/maintainers/pagemachine)[@pagemachine](https://github.com/pagemachine)

---

Top Contributors

[![mbrodala](https://avatars.githubusercontent.com/u/5037116?v=4)](https://github.com/mbrodala "mbrodala (399 commits)")[![janmaennig](https://avatars.githubusercontent.com/u/5433846?v=4)](https://github.com/janmaennig "janmaennig (22 commits)")[![renovate-bot](https://avatars.githubusercontent.com/u/25180681?v=4)](https://github.com/renovate-bot "renovate-bot (10 commits)")[![renovate[bot]](https://avatars.githubusercontent.com/in/2740?v=4)](https://github.com/renovate[bot] "renovate[bot] (5 commits)")[![chriwo](https://avatars.githubusercontent.com/u/1309774?v=4)](https://github.com/chriwo "chriwo (2 commits)")[![markuspoerschke](https://avatars.githubusercontent.com/u/1222377?v=4)](https://github.com/markuspoerschke "markuspoerschke (1 commits)")[![pkerling](https://avatars.githubusercontent.com/u/57038419?v=4)](https://github.com/pkerling "pkerling (1 commits)")[![Mabahe](https://avatars.githubusercontent.com/u/1684986?v=4)](https://github.com/Mabahe "Mabahe (1 commits)")[![fjacobi](https://avatars.githubusercontent.com/u/861791?v=4)](https://github.com/fjacobi "fjacobi (1 commits)")

---

Tags

extbasefluidloginphptypo3typo3-extensionextbasetypo3fluidfelogin

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/pagemachine-hairu/health.svg)

```
[![Health](https://phpackages.com/badges/pagemachine-hairu/health.svg)](https://phpackages.com/packages/pagemachine-hairu)
```

###  Alternatives

[friendsoftypo3/content-blocks

TYPO3 CMS Content Blocks - Content Types API | Define reusable components via YAML

103519.9k53](/packages/friendsoftypo3-content-blocks)[pagemachine/typo3-formlog

Form log for TYPO3

23238.6k8](/packages/pagemachine-typo3-formlog)[netresearch/rte-ckeditor-image

Image support in CKEditor for the TYPO3 ecosystem - by Netresearch

611.1M8](/packages/netresearch-rte-ckeditor-image)[eliashaeussler/typo3-warming

Warming - Warms up Frontend caches based on an XML sitemap. Cache warmup can be triggered via TYPO3 backend or using a console command. Supports multiple languages and custom crawler implementations.

22260.2k](/packages/eliashaeussler-typo3-warming)[in2code/femanager

Modern TYPO3 Frontend User Registration.

53790.4k8](/packages/in2code-femanager)[eliashaeussler/typo3-form-consent

Extension for TYPO3 CMS that adds double opt-in functionality to EXT:form

1595.5k](/packages/eliashaeussler-typo3-form-consent)

PHPackages © 2026

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