PHPackages                             funson86/yii2-auth - 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. funson86/yii2-auth

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

funson86/yii2-auth
==================

Yii2 Auth with Operation Category

0.0.1(11y ago)88532Apache-2.0

Since Feb 10Compare

[ Source](https://github.com/funson86/yii2-auth)[ Packagist](https://packagist.org/packages/funson86/yii2-auth)[ RSS](/packages/funson86-yii2-auth/feed)WikiDiscussions Synced today

READMEChangelog (1)Dependencies (1)Versions (2)Used By (2)

Yii2 Auth
=========

[](#yii2-auth)

Yii2 Auth could manage operations in category, you could integrate it to [Yii2 Adminlte](https://github.com/funson86/yii2-adminlte)

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

[](#installation)

The preferred way to install this extension is through [composer](http://getcomposer.org/download/).

Either run

```
php composer.phar require funson86/yii2-auth "dev-master"

```

or add

```
"funson86/yii2-auth": "*"

```

to the require section of your `composer.json` file.

Usage
-----

[](#usage)

Once the extension is installed, simply use it in your code by :

### Migration

[](#migration)

Migration run

```
yii migrate --migrationPath=@funson86/auth/migrations
```

Or insert to table `setting` manually.

```
CREATE TABLE `auth_operation` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `parent_id` int(11) NOT NULL DEFAULT 0,
  `name` varchar(32) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `parent_id` (`parent_id`)
) ENGINE=InnoDB AUTO_INCREMENT=100000 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='Auth Operation';

CREATE TABLE `auth_role` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(64) NOT NULL,
  `description` varchar(255) DEFAULT NULL,
  `operation_list` text,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='Auth Role';

INSERT INTO `auth_role` VALUES ('1', 'Super Admin', '', 'all');
INSERT INTO `auth_role` VALUES ('3', 'Normal Admin', '', 'backendLogin;viewUser;viewRole');

INSERT INTO `auth_operation` VALUES ('111', '0', 'basic');
INSERT INTO `auth_operation` VALUES ('113', '0', 'user');
INSERT INTO `auth_operation` VALUES ('114', '0', 'role');
INSERT INTO `auth_operation` VALUES ('11101', '111', 'backendLogin');
INSERT INTO `auth_operation` VALUES ('11302', '113', 'viewUser');
INSERT INTO `auth_operation` VALUES ('11303', '113', 'createUser');
INSERT INTO `auth_operation` VALUES ('11304', '113', 'updateUser');
INSERT INTO `auth_operation` VALUES ('11305', '113', 'deleteUser');
INSERT INTO `auth_operation` VALUES ('11402', '114', 'viewRole');
INSERT INTO `auth_operation` VALUES ('11403', '114', 'createRole');
INSERT INTO `auth_operation` VALUES ('11404', '114', 'updateRole');
INSERT INTO `auth_operation` VALUES ('11405', '114', 'deleteRole');

ALTER TABLE `user` ADD COLUMN `auth_role` int(11) AFTER `status`;
UPDATE `user` set `auth_role`=3;
UPDATE `user` set `auth_role`=1 where `username` = 'admin';
```

### Config /common/config/main.php to check authority

[](#config-commonconfigmainphp-to-check-authority)

After add the following code, the code *if(!Yii::$app-&gt;user-&gt;can('createRole')) throw new ForbiddenHttpException(Yii::t('app', 'No Auth'));*in each action of controller could check whether current user have the authority to run this action or not.

```
    'components' => [
        'user' => [
            'class' => 'funson86\auth\User',
            'enableAutoLogin' => true,
        ],
    ],
```

### CRUD Auth Role with operation at backend

[](#crud-auth-role-with-operation-at-backend)

Config backend modules in backend/config/main.php to manage settings

```
    'modules' => [
        'auth' => [
            'class' => 'funson86\auth\Module',
        ],
    ],
```

Access backend url:

### Add Your Auth Operation

[](#add-your-auth-operation)

You could add your new operation based on business by migration or insert to table `auth_operation` manually.

```
INSERT INTO `auth_operation` VALUES ('115', '0', 'Service');
INSERT INTO `auth_operation` VALUES ('11501', '115', 'viewService');
```

### Use Your Operation Check

[](#use-your-operation-check)

Once you add new operation in `auth_operation`, add `if (!Yii::$app->user->can('viewService')) throw new ForbiddenHttpException(Yii::t('app', 'No Auth'))`at the beginning of action of controller like the following:

```
class ServiceController extends Controller
{
    public function actionView($id)
    {
        if (!Yii::$app->user->can('viewService')) throw new ForbiddenHttpException(Yii::t('app', 'No Auth'));
        // you business code
    }
}
```

### Translation

[](#translation)

If no translation, it will show you 'viewService' at the backend management. You could add the translation in backend/messages/en/auth.php or backend/messages/zh-CN/auth.php. Like the following:

```
return [
    'viewService' => 'View Service',
];
```

Preview
-------

[](#preview)

[![Yii2-Auth](yii2-auth-preview.png)](yii2-auth-preview.png)

###  Health Score

29

—

LowBetter than 57% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity22

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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

Unknown

Total

1

Last Release

4162d ago

### Community

Maintainers

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

---

Top Contributors

[![funson86](https://avatars.githubusercontent.com/u/6244263?v=4)](https://github.com/funson86 "funson86 (18 commits)")

---

Tags

authrbacyii2extensionrole

### Embed Badge

![Health badge](/badges/funson86-yii2-auth/health.svg)

```
[![Health](https://phpackages.com/badges/funson86-yii2-auth/health.svg)](https://phpackages.com/packages/funson86-yii2-auth)
```

###  Alternatives

[jinxing/yii2-admin

RBAC Auth manager for Yii2

391.0k1](/packages/jinxing-yii2-admin)[kakadu-dev/yii2-jwt-auth

Extension provide JWT auth for Yii2

105.8k](/packages/kakadu-dev-yii2-jwt-auth)

PHPackages © 2026

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