码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【Vue + Koa 前后端分离项目实战3】使用开源框架==>快速搭建后台管理系统 -- part3 权限控制+行为日志


    走的越远,见识越多,认识的人越多,你就越能体会到:

    人这一辈子,你真的在意的,同时又在意你的人,就那么几个。

    这几个人,就是你的全部世界。


    完整章节回顾

    【Vue + Koa 前后端分离项目实战】使用开源框架==>快速搭建后台管理系统 -- part2 后端新增期刊功能实现_小白Rachel的博客-CSDN博客

    【Vue + Koa 前后端分离项目实战】使用开源框架==>快速搭建后台管理系统 -- part1 项目搭建_小白Rachel的博客-CSDN博客

    本博客教学视频来源于《0到1快速构建自己的后台管理系统》课程

    开源框架:林间有风: 林间有风团官方团队   

    文档地址:介绍 | Lin CMS 

    项目最终实现效果:lin-cms

    项目最终实现源码:https://gitee.com/xuruicong/my-lin-cms-project

     目录

    完整章节回顾

    一、权限控制

    1. 项目调整

    2.测试权限

     二、行为日志


    之前讲解中使用的多是Koa框架的内容,其中使用到【lin-cms】封装好的功能有:

    (1)校验器,可以通过继承简化代码封装。(LinValidator)

    (2)异常消息提示,成功消息提示 

    (3)权限控制

    (4)行为日志


    一、权限控制

    1. 项目调整

    在定义api时使用了基础的post get put delete 方法。

    这些都是KoaRouter()内置的,因此要使用lin-cms的权限控制,需要修改使用的类库。

    如 由原来的contentApi.post 变成contentApi.linPost

    相应的传参也发生了改变

    1. // 原生的Koa传递了两个参数:url路径,方法体
    2. contentApi.post('/', async ctx => {
    3. const v = await new AddContentValidator().validate(ctx)
    4. await ContentService.addContent(v.get('body'))
    5. ctx.success({
    6. msg: '期刊内容新增成功'
    7. })
    8. })

    原生的Koa传递了两个参数:url路径,方法体

    lin-cms传递了四个参数:函数的唯一标识,url路径,权限对象,接口的权限级别,

    1. // lin-cms传递了四个参数:函数的唯一标识,url路径,权限对象,接口的权限级别,
    2. contentApi.linPost(
    3. "addContent", // 函数唯一标识
    4. "/",
    5. {
    6. permission: "添加期刊内容", // 权限名称
    7. module: "内容管理", // 权限所属模块
    8. mount: true // 是否是全局 一般是true
    9. },
    10. groupRequired, // 接口的权限级别
    11. logger("{user.username}新增了期刊内容"),
    12. async (ctx) => {
    13. const v = await new AddContentValidator().validate(ctx);
    14. await ContentService.addContent(v.get("body"));
    15. ctx.success({
    16. msg: "期刊内容新增成功"
    17. });
    18. }
    19. );

    参考链接:模型管理和权限管理 | Lin CMS 

    2.测试权限

    增加了权限控制之后,重新打开postman测试。发现请求需要添加【令牌token】

     如何获取一个令牌(token)呢? 答:运行前端项目(npm run serve),登录账号,获取token

    在浏览器的F12-->Application-->localStorage-->accessToken  复制bear后面的内容就是token了。

    可以通过创建账户,使用不同的token来验证。

     二、行为日志

    参考链接:行为日志 | Lin CMS

    logger("{user.username}新增了期刊内容"),

    日志可以在前端项目中的【日志管理】模块查看到,每个用户进行一次操作,相应的操作就会被记录下来。

     

  • 相关阅读:
    MySQL 视图(2)
    LeetCode50天刷题计划第二季(Day 23 — 重排链表(16.20- 17.00)
    游戏设计模式专栏(七):在Cocos游戏开发中运用桥接模式
    【从入门到起飞】JavaSE—多线程(2)(lock锁,死锁,等待唤醒机制)
    远程Debug远端服务器JVM配置
    递归算法JAVA实现
    SPDK/NVMe存储技术分析之初识UIO(二)
    【Pytorch安装】windows下,安装了torch但是import torch失败
    小黑腰酸背痛继续leetcode:剑指 Offer II 027. 回文链表
    有关JWT的面试问题总结
  • 原文地址:https://blog.csdn.net/Sabrina_cc/article/details/126608838
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号