PHPackages                             netresearch/nr-passkeys-fe - 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. netresearch/nr-passkeys-fe

ActiveTypo3-cms-extension[Authentication &amp; Authorization](/categories/authentication)

netresearch/nr-passkeys-fe
==========================

Passkey-first TYPO3 frontend authentication for fe\_users (WebAuthn/FIDO2). Enables passwordless login with TouchID, FaceID, YubiKey, Windows Hello. By Netresearch.

v0.2.0(3mo ago)17[1 issues](https://github.com/netresearch/t3x-nr-passkeys-fe/issues)GPL-2.0-or-laterPHPPHP ^8.2CI passing

Since Mar 15Pushed 1w ago1 watchersCompare

[ Source](https://github.com/netresearch/t3x-nr-passkeys-fe)[ Packagist](https://packagist.org/packages/netresearch/nr-passkeys-fe)[ Docs](https://github.com/netresearch/t3x-nr-passkeys-fe)[ RSS](/packages/netresearch-nr-passkeys-fe/feed)WikiDiscussions main Synced 3w ago

READMEChangelog (7)Dependencies (10)Versions (11)Used By (0)

[![CI](https://github.com/netresearch/t3x-nr-passkeys-fe/actions/workflows/ci.yml/badge.svg)](https://github.com/netresearch/t3x-nr-passkeys-fe/actions/workflows/ci.yml)[![PHPStan Level 10](https://camo.githubusercontent.com/af58509b7d9764c4b6217f44ea2222b4ffde6bc1187781a3f08d7f7636731db7/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048505374616e2d4c6576656c25323031302d627269676874677265656e)](https://phpstan.org/)[![License: GPL v2](https://camo.githubusercontent.com/6b639abd353f330706524560924b761ba87ba1895911daf38f4b71b9347bb94f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d47504c5f76322d626c75652e737667)](https://www.gnu.org/licenses/gpl-2.0)[![codecov](https://camo.githubusercontent.com/38600b68f76b40cb32fac496f7dbe750b8a50691ca8a71f065b833231c27bbed/68747470733a2f2f636f6465636f762e696f2f67682f6e657472657365617263682f7433782d6e722d706173736b6579732d66652f67726170682f62616467652e737667)](https://codecov.io/gh/netresearch/t3x-nr-passkeys-fe)[![OpenSSF Scorecard](https://camo.githubusercontent.com/40c895386439b79c7f8496b783e9ec476a375ef2b1b53d2467b9ba55b607f475/68747470733a2f2f6170692e73636f7265636172642e6465762f70726f6a656374732f6769746875622e636f6d2f6e657472657365617263682f7433782d6e722d706173736b6579732d66652f6261646765)](https://scorecard.dev/viewer/?uri=github.com/netresearch/t3x-nr-passkeys-fe)[![OpenSSF Best Practices](https://camo.githubusercontent.com/5d8858f1f771f6a25128cb1706404606fc93c872bcfbcfb5ec18efe69f215ee7/68747470733a2f2f7777772e626573747072616374696365732e6465762f70726f6a656374732f31323137382f6261646765)](https://www.bestpractices.dev/en/projects/12178)[![SLSA 3](https://camo.githubusercontent.com/dc294f15fb5f1c96307863a1e96860310be940504e7ee370cee94bf4400cbac9/68747470733a2f2f736c73612e6465762f696d616765732f67682d62616467652d6c6576656c332e737667)](https://slsa.dev)

Passkeys Frontend Authentication
================================

[](#passkeys-frontend-authentication)

TYPO3 extension for passwordless frontend authentication via WebAuthn/FIDO2 Passkeys. Enables `fe_users` to log in with TouchID, FaceID, YubiKey, or Windows Hello -- no password required.

Features
--------

[](#features)

- **Passkey-first login** -- Discoverable (usernameless) and username-first flows via a standalone plugin
- **felogin integration** -- Injects a passkey button into the standard felogin plugin
- **Self-service management** -- Users can enroll, rename, and revoke their own passkeys from the frontend
- **Recovery codes** -- 10 one-time bcrypt-hashed recovery codes as a fallback
- **Per-site RP ID** -- Each TYPO3 site has an independent WebAuthn Relying Party configuration
- **Per-group enforcement** -- Four levels: Off, Encourage, Required, Enforced -- with configurable grace periods
- **Post-login interstitial** -- Enrollment prompt shown to users without a passkey when enforcement is active
- **Backend admin module** -- Adoption statistics, credential management, enforcement settings
- **7 PSR-14 events** -- Before/after authentication, before/after enrollment, enforcement resolved, passkey removed, recovery codes generated
- **Security hardened** -- HMAC-signed challenges, nonce replay protection, per-IP rate limiting, account lockout
- **Vanilla JavaScript** -- Zero runtime npm dependencies; native WebAuthn browser API only

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

[](#requirements)

- PHP 8.2+
- TYPO3 v13.4 LTS or v14.1+
- `netresearch/nr-passkeys-be` ^0.6 (installed automatically)
- HTTPS (required by WebAuthn; `localhost` works for development)

### DDEV Quick Start

[](#ddev-quick-start)

For a working demo environment with preconfigured pages and users:

```
make up
```

Visit `https://nr-passkeys-fe.ddev.site/` after setup.

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

[](#installation)

```
composer require netresearch/nr-passkeys-fe
vendor/bin/typo3 extension:activate nr_passkeys_be
vendor/bin/typo3 extension:activate nr_passkeys_fe
vendor/bin/typo3 database:updateschema
```

Quick Start
-----------

[](#quick-start)

1. **Include TypoScript** in your site's root template:

    ```
    @import 'EXT:nr_passkeys_fe/Configuration/TypoScript/setup.typoscript'
    @import 'EXT:nr_passkeys_fe/Configuration/TypoScript/constants.typoscript'

    plugin.tx_nrpasskeysfe.settings.loginPageUid = 42
    plugin.tx_nrpasskeysfe.settings.managementPageUid = 43
    plugin.tx_nrpasskeysfe.settings.enrollmentPageUid = 44

    ```
2. **Add plugins** to your pages:

    - Login page: *Passkeys Frontend Authentication &gt; Login*
    - Management page: *Passkeys Frontend Authentication &gt; Management*
    - Enrollment page: *Passkeys Frontend Authentication &gt; Enrollment*
3. **Configure the site** in `config/sites/my-site/config.yaml`:

    ```
    settings:
      nr_passkeys_fe:
        rpId: 'your-domain.example'
        origin: 'https://your-domain.example'
        enforcementLevel: 'encourage'
        enrollmentPageUrl: '/passkey-setup'
    ```

Visit the login page and click **Sign in with a passkey**.

Documentation
-------------

[](#documentation)

Full documentation: [docs.typo3.org/p/netresearch/nr-passkeys-fe/main/en-us/](https://docs.typo3.org/p/netresearch/nr-passkeys-fe/main/en-us/)

- [Installation](Documentation/Installation/Index.rst)
- [Configuration](Documentation/Configuration/Index.rst)
- [Quick Start](Documentation/QuickStart/Index.rst)
- [Developer Guide](Documentation/DeveloperGuide/Index.rst)
- [Security](Documentation/Security/Index.rst)

License
-------

[](#license)

GPL-2.0-or-later. See [LICENSE](https://www.gnu.org/licenses/gpl-2.0.html).

Contributing
------------

[](#contributing)

Issues and pull requests: [github.com/netresearch/t3x-nr-passkeys-fe](https://github.com/netresearch/t3x-nr-passkeys-fe)

See [AGENTS.md](AGENTS.md) for development setup, code style, and test commands.

###  Health Score

35

—

LowBetter than 77% of packages

Maintenance71

Regular maintenance activity

Popularity8

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity43

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 93.4% 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 ~1 days

Total

7

Last Release

91d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/151247?v=4)[Netresearch DTT GmbH](/maintainers/netresearch)[@netresearch](https://github.com/netresearch)

---

Top Contributors

[![CybotTM](https://avatars.githubusercontent.com/u/326348?v=4)](https://github.com/CybotTM "CybotTM (211 commits)")[![renovate[bot]](https://avatars.githubusercontent.com/in/2740?v=4)](https://github.com/renovate[bot] "renovate[bot] (8 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (7 commits)")

---

Tags

AuthenticationFIDO2webauthnfrontendtypo3Passwordlesspasskeys

### Embed Badge

![Health badge](/badges/netresearch-nr-passkeys-fe/health.svg)

```
[![Health](https://phpackages.com/badges/netresearch-nr-passkeys-fe/health.svg)](https://phpackages.com/packages/netresearch-nr-passkeys-fe)
```

###  Alternatives

[friendsoftypo3/content-blocks

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

101466.4k45](/packages/friendsoftypo3-content-blocks)[pagemachine/typo3-formlog

Form log for TYPO3

23233.9k7](/packages/pagemachine-typo3-formlog)[in2code/femanager

Modern TYPO3 Frontend User Registration.

50774.5k7](/packages/in2code-femanager)[netresearch/rte-ckeditor-image

Image support in CKEditor for the TYPO3 ecosystem - by Netresearch

611.0M6](/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.

22249.2k](/packages/eliashaeussler-typo3-warming)[evoweb/sf-register

Frontend User Registration

14185.9k2](/packages/evoweb-sf-register)

PHPackages © 2026

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