首页 php框架 ThinkPHP Thinkphp5中auth权限设置以及实现

Thinkphp5中auth权限设置以及实现

Jul 27, 2020 pm 01:23 PM
auth thinkphp5

下面由thinkphp框架教程栏目给大家介绍Thinkphp5中auth权限设置以及实现,希望对需要的朋友有所帮助!

Thinkphp5中auth权限设置以及实现

1.将auth类下载好 放置目录: extend\auth\auth.php

2.将类中的SQL语句执行,可以在数据库中创建3张表 auth_group(用户组表)           auth_rule(权限规则表)           auth_group_access(用户与用户组关联表)

3.我想给规则 添加一个级别关系(类似于无限极分类)   auth_rule(权限规则表) 中添加3个字段  pid(父级id ,0为顶级权限)   level(级别)    sort(排序),如下图

4,首先 自己创建管理员表,比如叫admin表,增删改查 自己去正常设计,group字段为所属用户组

5.auth_group用户组的 增删改查 也自己去制作一下,id,用户组名称,状态(开启,或者关闭),规则(所对应的是规则表的id)

6.auth_rule规则表 增删改查 也自己去制作一下,id,name(控制器/方法),title(规则名称 )  status状态(开启,或者关闭),

 

7. 在添加用户的时候 给用户选择 所属用户组, uid(对应的是用户id)   group_id(对应的是用户所属用户组的id),这样就关联起来了

 

8.把会员登陆功能做好,登陆成功设置session('id'),将当前登陆会员ID存在session中

9.最关键的的一步,就是使用auth类进行验证,在common.php这个公共页面中 使用

<?php
namespace app\admin\controller;
use think\Controller;
use think\Request;
use auth\Auth; //引入suth类
class Common extends Controller
{
    public function _initialize(){
      //初始化判断用户是否已经登陆
      if(!session(&#39;uname&#39;)){
          $this->error(&#39;请先登陆系统!&#39;,&#39;login/index&#39;);
        }


        //获得当前页面的控制器 / 方法
       $request=Request::instance();
       $moudle=$request->module(); //获取当前控制器名称
       $con=$request->controller(); //获取当前控制器名称
       $action=$request->action();  //获取当前方法名称
       $this->assign(array(
               &#39;con&#39;=>$con,
               &#39;action&#39;=>$action,
       ));

       $rules=$con.&#39;/&#39;.$action;  //组合  控制器/方法
       $auth=new Auth(); //实例化auth类
       $notCheck=array(&#39;Index/index&#39;);  //都可以访问的页面
       if(session(&#39;uid&#39;)!=1){  //不是超级管理员才进行权限判断
          if(!in_array($rules,$notCheck)){  // 是否在开放权限里面
              if(!$auth->check($rules,session(&#39;uid&#39;))){   // 第一个参数  控制/方法   第二个参数:当前登陆会员的id
                 $this->error(&#39;没有权限&#39;,&#39;index/index&#39;);
               };
           }
        }




       }
登录后复制

最终展示;

 

以上是Thinkphp5中auth权限设置以及实现的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1655
14
CakePHP 教程
1414
52
Laravel 教程
1307
25
PHP教程
1253
29
C# 教程
1228
24
宝塔部署thinkphp5报错怎么办 宝塔部署thinkphp5报错怎么办 Dec 19, 2022 am 11:04 AM

宝塔部署thinkphp5报错的解决办法:1、打开宝塔服务器,安装php pathinfo扩展并启用;2、配置“.access”文件,内容为“RewriteRule ^(.*)$ index.php?s=/$1 [QSA,PT,L]”;3、在网站管理里面,启用thinkphp的伪静态即可。

thinkphp5 url重写不行怎么办 thinkphp5 url重写不行怎么办 Dec 12, 2022 am 09:31 AM

thinkphp5 url重写不行的解决办法:1、查看httpd.conf配置文件中是否加载了mod_rewrite.so模块;2、将AllowOverride None中的None改为All;3、修改Apache配置文件.htaccess为“RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]”保存即可。

Java API 开发中使用 Auth0 进行身份认证 Java API 开发中使用 Auth0 进行身份认证 Jun 18, 2023 pm 05:30 PM

在现代软件开发中,身份认证是一项非常重要的安全措施。Auth0是一家提供身份认证服务的公司,它可以帮助开发者快速实现多种身份认证方式(包括OAuth2、OpenIDConnect等),并提供安全可靠的认证服务。在本文中,我们将介绍如何在JavaAPI开发中使用Auth0进行身份认证。第一步:创建Auth0账号并注册应用首先,我们需要在

怎么去除thinkphp5标题栏icon 怎么去除thinkphp5标题栏icon Dec 20, 2022 am 09:24 AM

去除thinkphp5标题栏icon的方法:1、找到thinkphp5框架public下的favicon.ico文件;2、删除该文件或者选择另一张图片命名改为favicon.ico,并替换原favicon.ico文件即可。

thinkphp5怎么获取请求过来的网址 thinkphp5怎么获取请求过来的网址 Dec 20, 2022 am 09:48 AM

thinkphp5获取请求网址的方法:1、使用“\think\Request”类的“$request = Request::instance();”方法获取当前的url信息;2、通过自带的助手函数“$request->url()”获取包含域名的完整URL地址。

thinkphp5 post得不到值怎么办 thinkphp5 post得不到值怎么办 Dec 06, 2022 am 09:29 AM

thinkphp5 post得不到值是因为TP5是通过strpos函数在Header的content-type值中查找app/json字符串的,其解决办法就是设置Header的content-type值为app/json即可。

Vue3中如何使用Supabase Auth方法 Vue3中如何使用Supabase Auth方法 May 28, 2023 am 08:39 AM

引言Supabase是一个自称的"开源Firebase替代品"。我对与Supbase合作已经有一段时间了,我想我将尝试使用他们的认证API来为Vue.js3应用程序进行认证设置。首先,你为什么要使用SupabaseAuth?最重要的是,如果你使用Supabase作为你的数据存储,(它有一些非常甜蜜的好处),SupabaseAuth是你可以管理对这些数据的访问的唯一方法。其次,虽然SupabaseAuth也有许多不同的功能。没有中间件的用户权限(通过Postgres的行级安全)

使用 Auth0 实现 PHP 安全验证 使用 Auth0 实现 PHP 安全验证 Jul 25, 2023 pm 02:09 PM

使用Auth0实现PHP安全验证引言:在现代的Web开发中,安全验证是至关重要的一部分。为了保护用户的隐私和数据安全,我们需要采取措施确保只有授权用户才能访问敏感信息或执行特定操作。Auth0是一个流行的身份验证和授权平台,它提供了简单且强大的解决方案来帮助我们实现安全验证。本文将介绍如何使用Auth0实现PHP的安全验证,并提供代码

See all articles