资讯专栏INFORMATION COLUMN

Yii2 restful接口方式开发,权限控制(yii2-rest-rbac)

whataa / 2345人阅读

摘要:根据修改,只是方式,这个相当于的版本。适合用于前后端分离项目,方式提供接口,实现对接口的权限控制。

根据yii2-admin(https://github.com/mdmsoft/yi...)修改,yii2-admin只是web方式,这个相当于yii2-admin的rest版本。适合用于前后端分离项目,rest方式提供接口,实现对接口的权限控制。
项目地址:https://github.com/windhoney/...
yii2-rest-rbac
Yii2权限系统,rest版,根据yii2-admin(https://github.com/mdmsoft/yii2-admin)修改

安装:

composer require windhoney/yii2-rest-rbac
使用 配置oauth2和rbac
   "modules" => [
        "rbac" => [
            "class" => "wind
estmodules"
        ],
        "oauth2" => [
            "class" => "filshyii2oauth2serverModule",
            "tokenParamName" => "access_token",
            "tokenAccessLifetime" => 3600 * 24,
            "storageMap" => [
                "user_credentials" => "backendmodelsUser",
            ],
            "grantTypes" => [
                "user_credentials" => [
                    "class" => "OAuth2GrantTypeUserCredentials",
                ],
                "client_credentials" => [
                    "class" => "OAuth2GrantTypeClientCredentials",
                ],
                "refresh_token" => [
                    "class" => "OAuth2GrantTypeRefreshToken",
                    "always_issue_new_refresh_token" => true
                ],
                "authorization_code" => [
                    "class" => "OAuth2GrantTypeAuthorizationCode"
                ],
            ],
             "components" => [
                "request" => function () {
                    return filshyii2oauth2serverRequest::createFromGlobals();
                },
                "response" => [
                    "class" => filshyii2oauth2serverResponse::class,
                ],
            ],
        ]
    ],
    "components" => [
        "authManager" => [
            "class" => "wind
estcomponentsDbManager", //配置文件
        ],
    ]
配置权限
    "as access" => [
        "class" => "wind
estcomponentsAccessControl",
        "allowActions" => [
            "site/*",//允许访问的节点,可自行添加
            "rbac/menu/user-menu",
            "oauth2/*",
        ]
    ],
创建所需要的表
1. 用户表user和菜单表menu
yii migrate --migrationPath=@vendor/windhoney/yii2-rest-rbac/migrations
2. rbac相关权限表
yii migrate --migrationPath=@yii/rbac/migrations/
auth_item 表添加一个字段 parent_name varchar(30) COLLATE utf8_unicode_ci DEFAULT "" COMMENT "父级名称",
3. oauth2相关表
yii migrate --migrationPath=@vendor/filsh/yii2-oauth2-server/migrations
4. 新增分组表
CREATE TABLE `auth_groups` (
  `group_id` varchar(50) NOT NULL COMMENT "分组id",
  `group_name` varchar(100) NOT NULL DEFAULT "" COMMENT "分组名称",
  `group_status` varchar(50) NOT NULL DEFAULT "" COMMENT "状态(开启,关闭)",
  PRIMARY KEY (`group_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT="分组";
CREATE TABLE `auth_groups_child` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `group_id` varchar(50) NOT NULL COMMENT "分组id",
  `user_id` varchar(64) NOT NULL COMMENT "用户id",
  PRIMARY KEY (`id`),
  UNIQUE KEY `group_id_2` (`group_id`,`user_id`),
  KEY `group_id` (`group_id`),
  KEY `user_group_id` (`user_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=795 DEFAULT CHARSET=utf8 COMMENT="分组子集";
添加路由配置

将yii2-rest-rbac/example/rbac_route.php文件内容配置到项目的urlManager的rules规则下

或者在main.php文件中 添加

$dir = __DIR__ . "/route";
$main = wind
esthelperRbacHelper::addRoute($dir, $main);
return $main;
并将此文件放到config/route/rbac_route.php
接口文档参考

文档

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/25937.html

相关文章

  • RageFrame 一个 Yii2 + AdminLET 免费开源多商户通用后台管理系统

    摘要:极致的插件机制,系统内的系统,安装和卸载不会对原来的系统产生影响强大的功能完全满足各阶段的需求,支持用户多端访问后台微信前台等,系统中的系统。多入口模式,多入口分为后台前端,微信,对内接口,对外接口,不同的业务,不同的设备,进入不同的入口。 RageFrame 2.0 为二次开发而生,让开发变得更简单 项目地址:https://github.com/jianyan74/... 前言 这...

    sunny5541 评论0 收藏0
  • RageFrame 一个 Yii2 + AdminLET 免费开源多商户通用后台管理系统

    摘要:极致的插件机制,系统内的系统,安装和卸载不会对原来的系统产生影响强大的功能完全满足各阶段的需求,支持用户多端访问后台微信前台等,系统中的系统。多入口模式,多入口分为后台前端,微信,对内接口,对外接口,不同的业务,不同的设备,进入不同的入口。 RageFrame 2.0 为二次开发而生,让开发变得更简单 项目地址:https://github.com/jianyan74/... 前言 这...

    Ali_ 评论0 收藏0
  • 基于Yii2的应用开发引擎RageFrame

    摘要:多入口模式,多入口分为后台前端,微信,其他或接口对接,不同的业务不同的设备进入不同的入口。对接微信公众号,使用了一款优秀的微信非官方,系统内已集成了该,调用方式会在文档说明,也可直接看其文档进入深入开发。 RageFrame 为二次开发而生,让开发变得更简单。 前言 RageFrame项目创建于2016年4月16日,基于Yii2框架开发的应用开发引擎,目前正在成长中,目的是为了集成更多...

    enda 评论0 收藏0
  • 阿北的知识分享小程序中restful使用经验贴

    摘要:大家知道我最近在给阿北的知识分享微信小程序改版,使用的是中的功能,接下来把遇到的一些问题及小技巧分享一下。小结以上就是目前为止在使用的开发小程序时候使用的一些知识和技巧,希望对你有用,以后如果有再分享哈。 大家知道我最近在给阿北的知识分享微信小程序改版,使用的是yii2中的restful功能,接下来把遇到的一些问题及小技巧分享一下。 先安利一下小程序码 链接 开始分享。 URL要重写 ...

    Meils 评论0 收藏0

发表评论

0条评论

whataa

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<