Multi-factor authentication for Yii2 projects

Installs: 5 087

Dependents: 2

Suggesters: 0

Security: 0

Stars: 10

Watchers: 6

Forks: 6

Open Issues: 2


0.1.0 2017-10-03 19:25 UTC

This package is auto-updated.

Last update: 2021-01-14 17:43:35 UTC


Multi-factor authentication for Yii2 projects

Latest Stable Version Total Downloads Build Status Scrutinizer Code Coverage Scrutinizer Code Quality Dependency Status

This package provides:

  • TOTP - Time-based One-time Password Algorithm used for two factor authentication
  • checking for user allowed IPs
  • generation and checking recovery codes (PLANNED)


Can be plugged into any exising Yii2 project. See how it is used in hiqdev/hiam.


The preferred way to install this yii2-extension is through composer.

Either run

php composer.phar require "hiqdev/yii2-mfa"

or add

"hiqdev/yii2-mfa": "*"

to the require section of your composer.json.


This extension provides pluggable configuration to be used with composer-config-plugin.

Also you can use it usual way by copy-pasting config. See src/config/web.php for configuration example.

Available configuration parameters:

  • organization.name

For more details please see src/config/params.php.


This plugin provides behavior and configuration attaches it to user component on beforeLogin event. And then the behavior validates IPs and TOTP on every login.

To use this plugin you have to instantiate your \Yii->app->user->identity class from hiqdev\yii2\mfa\base\MfaIdentityInterface and implement all of the methods, which will return or set MFA properties. For example:

use hiqdev\yii2\mfa\base\MfaIdentityInterface;

class Identity implements MfaIdentityInterface

     * @inheritDoc
    public function getUsername(): string
        return $this->username;

     * @inheritDoc
    public function getTotpSecret(): string
        return $this->totp_secret ?? '';


IPs and TOTP functions are independent and you can provide just one of properties to have only corresponding functionality.


This project is released under the terms of the BSD-3-Clause license. Read more here.

Copyright © 2016-2018, HiQDev (http://hiqdev.com/)