栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

yii2 高级版本的权限控制RBAC(认证与授权的使用)

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

yii2 高级版本的权限控制RBAC(认证与授权的使用)



authManager' => [
            'class' => 'yiirbacDbManager',
        ],
yii migrate --migrationPath=@yii/rbac/migrations/

生成这样

user表:

-- phpMyAdmin SQL Dump
-- version 4.5.1
-- http://www.phpmyadmin.net
--
-- Host: 127.0.0.1
-- Generation Time: 2022-01-28 03:49:51
-- 服务器版本: 10.1.13-MariaDB
-- PHP Version: 5.6.21

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


;
;
;
;

--
-- Database: `smister`
--

-- --------------------------------------------------------

--
-- 表的结构 `user`
--

CREATE TABLE `user` (
  `id` int(11) NOT NULL,
  `username` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `auth_key` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
  `password_hash` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `password_reset_token` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `email` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `status` smallint(6) NOT NULL DEFAULT '10',
  `created_at` int(11) NOT NULL,
  `updated_at` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

--
-- 转存表中的数据 `user`
--

INSERT INTO `user` (`id`, `username`, `auth_key`, `password_hash`, `password_reset_token`, `email`, `status`, `created_at`, `updated_at`) VALUES
(1, 'cyg', '', '$2y$13$NHFd.3BWFT5hSiq3uH1Ph.tB7LclapDx.dDRexGgk7eb5zynMkgPe', NULL, '', 10, 0, 0);

--
-- Indexes for dumped tables
--

--
-- Indexes for table `user`
--
ALTER TABLE `user`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `username` (`username`),
  ADD UNIQUE KEY `email` (`email`),
  ADD UNIQUE KEY `password_reset_token` (`password_reset_token`);

--
-- 在导出的表使用AUTO_INCREMENT
--

--
-- 使用表AUTO_INCREMENT `user`
--
ALTER TABLE `user`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
;
;
;

切记:一个注释一个注释的试.

整个源代码:

user->id);
//var_dump(Yii::$app->user->can('index/index'));
}}

第一步:
//创建总经理这个角色,并且注册进权限表中

$role=Yii::$app->authManager->createRole("总经理");
		Yii::$app->authManager->add($role);
		var_dump($role);

第二步:
//创建权限

$permission=Yii::$app->authManager->createPermission('index/index');

//注册进权限中

Yii::$app->authManager->add($permission);


第三步:
获取总经理角色
获取index/index权限
把权限赋值给角色

$role=Yii::$app->authManager->getRole("总经理");
$permission=Yii::$app->authManager->getPermission("index/index");
Yii::$app->authManager->addChild($role,$permission);


第四步:
获取总经理角色。赋值给同一个数据库里面的user表里面的id字段.意思是这个user表的id字段拥有这个权限,id为1的字段相当于用户!

$role = Yii::$app->authManager->getRole("总经理");
		Yii::$app->authManager->assign($role,1);

第五步:
实现登录效果

$user=commonmodelsUser::findOne(['id'=>1]);
Yii::$app->user->login($user);

第六步:
判断是否已经登录了

var_dump(Yii::$app->user->id);

第七步:
判断user表里面的id是否具备index/index这个权限

var_dump(Yii::$app->user->can('index/index'));

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/730154.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号