PHPackages                             humanmade/two-factor - 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. humanmade/two-factor

ActiveWordpress-plugin[Authentication &amp; Authorization](/categories/authentication)

humanmade/two-factor
====================

Two-Factor Authentication for WordPress.

0.8.2(2y ago)5206.2k↑11.1%[1 PRs](https://github.com/humanmade/two-factor/pulls)2GPL-2.0-or-laterPHPPHP &gt;=5.6

Since Aug 23Pushed 1y ago11 watchersCompare

[ Source](https://github.com/humanmade/two-factor)[ Packagist](https://packagist.org/packages/humanmade/two-factor)[ Docs](https://wordpress.org/plugins/two-factor/)[ RSS](/packages/humanmade-two-factor/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (7)Dependencies (12)Versions (45)Used By (2)

Two-Factor
==========

[](#two-factor)

[![Banner](assets/banner-1544x500.png)](assets/banner-1544x500.png)Enable Two-Factor Authentication using time-based one-time passwords (OTP, Google Authenticator), Universal 2nd Factor (FIDO U2F, YubiKey), email and backup verification codes.

**Contributors:** [georgestephanis](https://profiles.wordpress.org/georgestephanis), [valendesigns](https://profiles.wordpress.org/valendesigns), [stevenkword](https://profiles.wordpress.org/stevenkword), [extendwings](https://profiles.wordpress.org/extendwings), [sgrant](https://profiles.wordpress.org/sgrant), [aaroncampbell](https://profiles.wordpress.org/aaroncampbell), [johnbillion](https://profiles.wordpress.org/johnbillion), [stevegrunwell](https://profiles.wordpress.org/stevegrunwell), [netweb](https://profiles.wordpress.org/netweb), [kasparsd](https://profiles.wordpress.org/kasparsd)
**Tags:** [two factor](https://wordpress.org/plugins/tags/two-factor), [two step](https://wordpress.org/plugins/tags/two-step), [authentication](https://wordpress.org/plugins/tags/authentication), [login](https://wordpress.org/plugins/tags/login), [totp](https://wordpress.org/plugins/tags/totp), [fido u2f](https://wordpress.org/plugins/tags/fido-u2f), [u2f](https://wordpress.org/plugins/tags/u2f), [email](https://wordpress.org/plugins/tags/email), [backup codes](https://wordpress.org/plugins/tags/backup-codes), [2fa](https://wordpress.org/plugins/tags/2fa), [yubikey](https://wordpress.org/plugins/tags/yubikey)
**Requires at least:** 4.3
**Tested up to:** 4.9.1
**Stable tag:** trunk (master)

[![Build Status](https://camo.githubusercontent.com/8c246ee40ef75a5c55fc935082e9742b7afdd5e80f9b27732bc24f5ae51dace7/68747470733a2f2f7472617669732d63692e6f72672f67656f7267657374657068616e69732f74776f2d666163746f722e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/georgestephanis/two-factor) [![Coverage Status](https://camo.githubusercontent.com/85a2bcccce100da0c226f219b8cb6c9b6626d0e83b31818a59c99f065c6224f8/68747470733a2f2f636f766572616c6c732e696f2f7265706f732f67656f7267657374657068616e69732f74776f2d666163746f722f62616467652e7376673f6272616e63683d6d6173746572)](https://coveralls.io/github/georgestephanis/two-factor) [![Built with Grunt](https://camo.githubusercontent.com/9f156fc8bad420a6d57fa5f6458f87315ac9605ddabdd4c6610a743f144ee254/68747470733a2f2f63646e2e6772756e746a732e636f6d2f6275696c74776974682e737667)](http://gruntjs.com)

Description
-----------

[](#description)

For more history, see:

Get Involved
------------

[](#get-involved)

Development happens [on GitHub](https://github.com/georgestephanis/two-factor/). Join the `#core-passwords` channel [on WordPress Slack](http://wordpress.slack.com) ([sign up here](http://chat.wordpress.org)).

Here is how to get started:

```
$ git clone https://github.com/georgestephanis/two-factor.git
$ npm install

```

Then open [a pull request](https://help.github.com/articles/creating-a-pull-request-from-a-fork/) with the suggested changes.

Changelog
---------

[](#changelog)

See:

###  Health Score

42

—

FairBetter than 90% of packages

Maintenance31

Infrequent updates — may be unmaintained

Popularity37

Limited adoption so far

Community31

Small or concentrated contributor base

Maturity61

Established project with proven stability

 Bus Factor3

3 contributors hold 50%+ of commits

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 ~67 days

Total

28

Last Release

951d ago

PHP version history (2 changes)0.4.2PHP &gt;=5.4

0.5.0PHP &gt;=5.6

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/21655?v=4)[Ryan McCue](/maintainers/rmccue)[@rmccue](https://github.com/rmccue)

![](https://www.gravatar.com/avatar/77dbeefb7745010589603f2ffc6ff310d8f700b58e08d52af190744c43342526?d=identicon)[roborourke](/maintainers/roborourke)

![](https://www.gravatar.com/avatar/f1d0ffccdc5d339ff98a91e1b224a0d92f93dc8c2f772124473a76655b83129c?d=identicon)[joehoyle](/maintainers/joehoyle)

![](https://www.gravatar.com/avatar/a498e093283b7b42aa63d5f75851cda7ec4c4e2137cb8482e02d3181b48eafa3?d=identicon)[kadamwhite](/maintainers/kadamwhite)

---

Top Contributors

[![georgestephanis](https://avatars.githubusercontent.com/u/941023?v=4)](https://github.com/georgestephanis "georgestephanis (159 commits)")[![kasparsd](https://avatars.githubusercontent.com/u/169055?v=4)](https://github.com/kasparsd "kasparsd (102 commits)")[![valendesigns](https://avatars.githubusercontent.com/u/62798?v=4)](https://github.com/valendesigns "valendesigns (80 commits)")[![shield-9](https://avatars.githubusercontent.com/u/3660715?v=4)](https://github.com/shield-9 "shield-9 (72 commits)")[![stevenkword](https://avatars.githubusercontent.com/u/1030598?v=4)](https://github.com/stevenkword "stevenkword (71 commits)")[![mikeselander](https://avatars.githubusercontent.com/u/3021494?v=4)](https://github.com/mikeselander "mikeselander (30 commits)")[![aaroncampbell](https://avatars.githubusercontent.com/u/802412?v=4)](https://github.com/aaroncampbell "aaroncampbell (13 commits)")[![scotchfield](https://avatars.githubusercontent.com/u/5611966?v=4)](https://github.com/scotchfield "scotchfield (12 commits)")[![paragonie-scott](https://avatars.githubusercontent.com/u/11591518?v=4)](https://github.com/paragonie-scott "paragonie-scott (5 commits)")[![joshbetz](https://avatars.githubusercontent.com/u/300429?v=4)](https://github.com/joshbetz "joshbetz (5 commits)")[![shadyvb](https://avatars.githubusercontent.com/u/451892?v=4)](https://github.com/shadyvb "shadyvb (4 commits)")[![kadamwhite](https://avatars.githubusercontent.com/u/442115?v=4)](https://github.com/kadamwhite "kadamwhite (3 commits)")[![swissspidy](https://avatars.githubusercontent.com/u/841956?v=4)](https://github.com/swissspidy "swissspidy (3 commits)")[![tyrann0us](https://avatars.githubusercontent.com/u/8144115?v=4)](https://github.com/tyrann0us "tyrann0us (2 commits)")[![joehoyle](https://avatars.githubusercontent.com/u/161683?v=4)](https://github.com/joehoyle "joehoyle (2 commits)")[![johnbillion](https://avatars.githubusercontent.com/u/208434?v=4)](https://github.com/johnbillion "johnbillion (2 commits)")[![roborourke](https://avatars.githubusercontent.com/u/23417?v=4)](https://github.com/roborourke "roborourke (2 commits)")[![dd32](https://avatars.githubusercontent.com/u/767313?v=4)](https://github.com/dd32 "dd32 (2 commits)")[![stevegrunwell](https://avatars.githubusercontent.com/u/233836?v=4)](https://github.com/stevegrunwell "stevegrunwell (2 commits)")[![kraftbj](https://avatars.githubusercontent.com/u/88897?v=4)](https://github.com/kraftbj "kraftbj (2 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/humanmade-two-factor/health.svg)

```
[![Health](https://phpackages.com/badges/humanmade-two-factor/health.svg)](https://phpackages.com/packages/humanmade-two-factor)
```

###  Alternatives

[bezhansalleh/filament-shield

Filament support for `spatie/laravel-permission`.

2.8k2.9M88](/packages/bezhansalleh-filament-shield)[gesdinet/jwt-refresh-token-bundle

Implements a refresh token system over Json Web Tokens in Symfony

70516.4M35](/packages/gesdinet-jwt-refresh-token-bundle)[illuminate/auth

The Illuminate Auth package.

9327.3M1.0k](/packages/illuminate-auth)[beatswitch/lock

A flexible, driver based Acl package for PHP 5.4+

870304.7k2](/packages/beatswitch-lock)[amocrm/amocrm-api-library

amoCRM API Client

182728.5k6](/packages/amocrm-amocrm-api-library)[vonage/jwt

A standalone package for creating JWTs for Vonage APIs

424.1M4](/packages/vonage-jwt)

PHPackages © 2026

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