PHPackages                             lx3gp/think-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. lx3gp/think-auth

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

lx3gp/think-auth
================

this package for thinkPHP6

1.0.9(3y ago)043Apache-2.0PHPPHP &gt;=7.1.0

Since Mar 30Pushed 3y ago1 watchersCompare

[ Source](https://github.com/lx3gp/think-auth)[ Packagist](https://packagist.org/packages/lx3gp/think-auth)[ Docs](https://github.com/lx3gp/think-auth)[ RSS](/packages/lx3gp-think-auth/feed)WikiDiscussions main Synced today

READMEChangelog (9)DependenciesVersions (8)Used By (0)

thinkphp6.0权限扩展
===============

[](#thinkphp60权限扩展)

The ThinkPHP6 Auth Package

- 本插件经thinkphp官方推荐认证扩展，请放心使用
- 开发者基本礼仪，star一下

安装
--

[](#安装)

> composer require lx3gp/think-auth

更新
--

[](#更新)

> composer update lx3gp/think-auth

卸载
--

[](#卸载)

> composer remove lx3gp/think-auth

兼容版本
----

[](#兼容版本)

- thinkphp 6.0

配置
--

[](#配置)

```
// auth配置  自定义数据表位置在 ./config/auth.php里面,安装扩展会自动生成。如果没有的话建议手动建立下。
//下面的数据表映射需要与表对应上
[
    'auth_on'           => 1, // 权限开关
    'auth_type'         => 1, // 认证方式，1为实时认证；2为登录认证。
    'auth_group'        => 'think_auth_group', // 用户组数据
    'auth_group_access' => 'think_auth_group_access', // 用户-用户组关系
    'auth_rule'         => 'think_auth_rule', // 权限规则
    'auth_user'         => 'user', // 用户信息表,主键自增字段为id
    'auth_driver'		=> 'cache', // 权限数据存储的介质
    'auth_pk'           =>  'id',// 用户表ID字段名
],

```

### 导入数据表

[](#导入数据表)

> - `__PREFIX__` 为自定义的数据表前缀
> - 请确认已经配置了数据库相关信息
> - 请确认数据库中不存在`auth_rule`、`auth_group`、`auth_group_access`、`user`这四个数据表
> - 使用`composer`安装该插件后，系统会自动将上述数据表导入到数据库中，无需手动导入
> - 如果安装插件后，在数据库中没有发现上述4张表，请将./vendor/lx3gp/data/install.sql文件手动导入至数据库

原理
--

[](#原理)

Auth权限认证是按规则进行认证。 在数据库中我们有

- 规则表（think\_auth\_rule）
- 用户组表(think\_auth\_group)
- 用户组明显表（think\_auth\_group\_access）

我们在规则表中定义权限规则， 在用户组表中定义每个用户组有哪些权限规则，在用户组明显表中定义用户所属的用户组。

下面举例说明：

我们要判断用户是否有显示一个操作按钮的权限， 首先定义一个规则， 在规则表中添加一个名为 show\_button 的规则。 然后在用户组表添加一个用户组，定义这个用户组有show\_button 的权限规则（think\_auth\_group表中rules字段存得时规则ID，多个以逗号隔开）， 然后在用户组明细表定义 UID 为1 的用户 属于刚才这个的这个用户组。

使用
--

[](#使用)

判断权限方法

```
// 引入类库
use think\Auth;

// 获取auth实例
$auth = Auth::instance();

// 检测权限
if($auth->check('show_button',1)){// 第一个参数是规则名称,第二个参数是用户UID
	//有显示操作按钮的权限
}else{
	//没有显示操作按钮的权限
}

```

Auth类也可以对节点进行认证，我们只要将规则名称，定义为节点名称就行了。 可以在公共控制器Base中定义\_initialize方法

```
