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

Abandoned → [typo3/cms-felogin](/?search=typo3%2Fcms-felogin)ArchivedTypo3-cms-extension

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

Flexible login/logout form based on Extbase/Fluid

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

Since Nov 14Pushed 2y ago5 watchersCompare

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

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

43

—

FairBetter than 91% of packages

Maintenance18

Infrequent updates — may be unmaintained

Popularity42

Moderate usage in the ecosystem

Community22

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

1202d 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

[fluidtypo3/vhs

This is a collection of ViewHelpers for performing rendering tasks that are not natively provided by TYPO3's Fluid templating engine.

1954.1M49](/packages/fluidtypo3-vhs)[typo3/testing-framework

The TYPO3 testing framework provides base classes for unit, functional and acceptance testing.

675.0M774](/packages/typo3-testing-framework)[pagemachine/typo3-formlog

Form log for TYPO3

23225.3k6](/packages/pagemachine-typo3-formlog)[leuchtfeuer/secure-downloads

"Secure Download": Apply TYPO3 access rights to ALL file assets (PDFs, TGZs or JPGs etc. - configurable) - protect them from direct access.

22234.7k1](/packages/leuchtfeuer-secure-downloads)[eliashaeussler/typo3-form-consent

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

1481.0k](/packages/eliashaeussler-typo3-form-consent)[leuchtfeuer/locate

Locate - The users country, preferred language and other facts will be detected. Depending on configurable rules the user can be redirected to other languages or pages. Locate also provides geo blocking for configurable pages in configurable countries.

1182.8k](/packages/leuchtfeuer-locate)

PHPackages © 2026

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