首页
免费后端云服务
关于
Search
1
小程序后端入门系列视频教程【一-微信开发工具介绍】
9,812 阅读
2
微信小程序三级联动之多列选择器
9,710 阅读
3
小程序开发免费后端之神秘利器分享
9,632 阅读
4
Golang-开发企业级资源权限管理【第一步表设计】-1
9,174 阅读
5
学会微信服务端开发第一步
9,049 阅读
日常记录
日常
随笔
Bmob后端云
从零开始学物联网
Serverless实战驾校小程序
心邮
Serverless
向量数据库
登录
Search
Typecho
累计撰写
124
篇文章
累计收到
22
条评论
首页
栏目
日常记录
日常
随笔
Bmob后端云
从零开始学物联网
Serverless实战驾校小程序
心邮
Serverless
向量数据库
页面
免费后端云服务
关于
搜索到
2
篇与
的结果
2015-02-25
Golang-开发企业级资源权限管理【第一步表设计】
我们做企业级系统,权限控制主要分三类。【功能权限】:对菜单栏目进行权限控制,查询,增加,删除,修改功能,一般来说这种对资源的权限控制模型可以做到比较统一(用户、角色、资源)。【数据权限】:哪些人能看到哪些数据,例如淘宝本人只能看自己订单,北京地区部门领导可以看到电器类部门订单, 最高领导能看到人所有订单等等。 这种跟业务高度相关,(网络上资料暂时比较少)原理主要是对SQL语句添加where 条件【字段权限】:订单能看到哪些字段,如供应商,看不到内部价、 出厂价等信息。 (网络上资料暂时比较少)实现原理跟数据权限控制是一致的。对SQL语句添加select 条件这次,我们主要讲解最常用的功能权限控制的实现过程,这类WEB权限控制,在任意后端语言上都可以实现Java、Golang、PHP、Nodejs、Python等等,主要理解其数据模型。我们先看最终实现的功能效果。1.角色管理页面这里可以新增角色,删除角色, 注意的是,这里有一个最高权限角色超级管理员,不允许删除,还有一个批量导入管理员默认角色。2.新增角色,编辑角色这里把系统大部分资源路由进入权限控制,说的大部分是因为有些页面权限是不需要进行控制,例如登陆、注册、以及后台一些下拉选项(读取的数据库接口)。3.管理员列表4.给管理员分配权限涉及数据表1.用户表用户表主要增加字段 rolesId 角色ID,了解这个用户是哪个角色。2.角色表角色表主要记录这个角色的名称,描述CREATE TABLE `t_roles` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL DEFAULT '' COMMENT '角色名称', `desc` varchar(50) NOT NULL DEFAULT '' COMMENT '描述', `createdAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=10003 DEFAULT CHARSET=utf8mb4 COMMENT='角色表';3.路由表这个表主要添加平台所有需要控制的路由方法,也可以不建表,写到配置文件里面,因为开发完需要控制的权限是固定的。上图:新增编辑角色,显示的就是这个表的内容CREATE TABLE `t_roles_tree` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL DEFAULT '' COMMENT '路由名称', `path` varchar(50) NOT NULL COMMENT '路径', `methods` varchar(50) NOT NULL COMMENT '方法', `createdAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `parentId` varchar(50) NOT NULL DEFAULT '' COMMENT '级别', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8mb4 COMMENT='系统所有路由表';4.权限表权限表记录了,这个角色有哪些权限。 核心字段为 [角色ID,资源url, 方法]。这里用casbin 实现,因为casbin封装了很多验证函数,节省了一部分工作量。CREATE TABLE `casbin_rule` ( `id` int(11) NOT NULL AUTO_INCREMENT, `p_type` varchar(255) NOT NULL DEFAULT '', `v0` varchar(255) NOT NULL DEFAULT '' COMMENT '角色', `v1` varchar(255) NOT NULL DEFAULT '' COMMENT 'Url', `v2` varchar(255) NOT NULL DEFAULT '' COMMENT '方法', `v3` varchar(255) NOT NULL DEFAULT '', `v4` varchar(255) NOT NULL DEFAULT '', `v5` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=48 DEFAULT CHARSET=utf8mb4;这一篇最后介绍下 Casbin是一个强大的、高效的开源访问控制框架,其权限管理机制支持多种访问控制模型。并指出主流后端语言,目前Casbin权限控制支持的语言有Go Java Node.js PHP Python C# Delphi,使用Casbin可以极大提高权限控制开发效率。当然你不用这个库,自己设计表,实现原理是一样。
2015年02月25日
4,185 阅读
0 评论
17 点赞
2015-02-07
faas-云函数使用技巧
Faas(Functions-as-a-Service ) 函数即服务,四大升级,助力移动开发。云函数支持小程序语法云函数升级,支持JavaScript语法操作数据库,以后会JavaScript,或者小程序开发,即可开发云函数,不再需要学习新的云函数语法。升级一:语法升级查询2条用户信息小程序,H5写法const query = Bmob.Query("_User"); query.limit(2) query.find().then(res => { console.log(res) }).catch(err => { console.log(err) });云函数写法function onRequest (request, response, modules) { //系统内置代码 let Bmob = modules.oBmob; const query = Bmob.Query("_User"); query.limit(2) query.find().then(res => { const b = JSON.stringify(res) response.send(b); }).catch(err => { const e = JSON.stringify(err); response.end(e) }); } 运行效果http://cloud.bmob.cn/c8bed465c9e6a524/aabb升级二:web预览升级1.外观升级曾经云函数,返回直接返回一个json数据不美观,也不好看。现在可视化展现接口细节。如果用浏览器直接打开一个 API 地址通常会得到一坨神奇的 JSON。使用 restc 之后不仅格式化并高亮了结果,而且还可以看到 HTTP 响应头。并且支持参数调试对比:2.功能升级参数调试介绍:云函数代码,接收参数name,点击send,打印:欢迎使用Bmob function onRequest(request, response, modules) { //获取SDK客户端上传的name参数 var name = request.body.name; if(name == 'bmob') response.end('欢迎使用Bmob'); else response.end('输入错误,请重新输入'); }这里感谢下饿了么团队,开源这么好用的HTTP 服务器中间件。升级三:开发调试升级我们用网页编写云函数时,经常函数没写完,不小心忘记保存关闭了网页,代码需要重新写。新出的Bmob云函数本地开发调试工具,不再会发生这种问题。本地开发工具绑定Bmob应用,写好代码,命令自动上传,并返回函数结果。使用文档地址:https://github.com/bmob/bmobup升级四:函数模板服务年初,我们推出了函数模板服务,当你需要写一些常用功能代码时,可以使用我们的函数模板服务。例如你想开发公众号,有菜单管理函数、自动回复函数, 如果你想开发小程序,有手机号解密函数模板,如果你先采集数据,有数据采集模板。如果你写了个功能,觉得大家可能用得上,也可以发布分享给大家使用,大家创建的时候只需要选择需要的模板即可。大家对云函数有更多需求,可以给我提建议喔。
2015年02月07日
4,573 阅读
0 评论
31 点赞