返回顶部
首页 > 资讯 > 精选 >使用vue怎么实现身份认证管理和租户管理功能
  • 639
分享到

使用vue怎么实现身份认证管理和租户管理功能

2023-06-15 05:06:22 639人浏览 薄情痞子
摘要

本篇文章为大家展示了使用Vue怎么实现身份认证管理和租户管理功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。按钮级权限src\utils\abp.js:export function&n

本篇文章为大家展示了使用Vue怎么实现身份认证管理和租户管理功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

按钮级权限

src\utils\abp.js

export function checkPermission(policy) {  const abpConfig = store.getters.abpConfig;  if (abpConfig.auth.grantedPolicies[policy]) {    return true;  } else {    return false;  }}

src\views\identity\roles.vue:

<el-button  class="filter-item"    type="primary"  icon="el-icon-edit"  @click="handleCreate"  v-if="checkPermission('AbpIdentity.Roles.Create')">  {{ $t("AbpIdentity['NewRole']") }}</el-button>

使用vue怎么实现身份认证管理和租户管理功能

使用vue怎么实现身份认证管理和租户管理功能

身份认证管理

角色和用户的增删改查就不说了,这里要注意一下权限管理。用户和角色都需要用到权限管理,在ABP angular版中是一个独立的permission-management模块。我这里也把他作为一个公用组件,根据providerName来区分,"R"是角色权限,"U"是用户权限。

R/U权限

他们有一点区别,用户权限可能来自于角色权限,所以用户中的权限需要显示是来自哪个providerName和providerKey,如果来自其他provider则disabled,不可以修改。

src\views\identity\components\permission-management.vue:

<el-fORM label-position="top">  <el-tabs tab-position="left">    <el-tab-pane      v-for="group in permissionData.groups"      :key="group.name"      :label="group.displayName"    >      <el-form-item :label="group.displayName">        <el-tree          ref="permissionTree"          :data="transformPermissionTree(group.permissions)"          :props="treeDefaultProps"          show-checkbox          check-strictly          node-key="name"          default-expand-all        />      </el-form-item>    </el-tab-pane>  </el-tabs></el-form>
transformPermissionTree(permissions, name = null) {  let arr = [];  if (!permissions || !permissions.some(v => v.parentName == name))    return arr;  const parents = permissions.filter(v => v.parentName == name);  for (let i in parents) {    let label = '';    if (this.permissionsQuery.providerName == "R") {      label = parents[i].displayName;    } else if (this.permissionsQuery.providerName == "U") {      label =        parents[i].displayName +        " " +        parents[i].grantedProviders.map(provider => {          return `${provider.providerName}: ${provider.providerKey}`;        });    }    arr.push({      name: parents[i].name,      label,      disabled: this.isGrantedByOtherProviderName(        parents[i].grantedProviders      ),      children: this.transformPermissionTree(permissions, parents[i].name)    });  }  return arr;},isGrantedByOtherProviderName(grantedProviders) {  if (grantedProviders.length) {    return (      grantedProviders.findIndex(        p => p.providerName !== this.permissionsQuery.providerName      ) > -1    );  }  return false;}

使用vue怎么实现身份认证管理和租户管理功能

使用vue怎么实现身份认证管理和租户管理功能

权限刷新

还有一个细节问题,如果正在修改的权限影响到了当前用户,如何立即生效。

src\views\identity\components\permission-management.vue:

updatePermissions(this.permissionsQuery, { permissions: tempData }).then(  () => {    this.dialogPermissionFormVisible = false;    this.$notify({      title: this.$i18n.t("HelloAbp['Success']"),      message: this.$i18n.t("HelloAbp['SucceSSMessage']"),      type: "success",      duration: 2000    });    fetchAppConfig(      this.permissionsQuery.providerKey,      this.permissionsQuery.providerName    );  });

src\utils\abp.js:

function shouldFetchAppConfig(providerKey, providerName) {  const currentUser = store.getters.abpConfig.currentUser;  if (providerName === "R")    return currentUser.roles.some(role => role === providerKey);  if (providerName === "U") return currentUser.id === providerKey;  return false;}export function fetchAppConfig(providerKey, providerName) {  if (shouldFetchAppConfig(providerKey, providerName)) {    store.dispatch("app/applicationConfiguration").then(abpConfig => {      resetRouter();      store.dispatch("user/setRoles", abpConfig.currentUser.roles);      const grantedPolicies = abpConfig.auth.grantedPolicies;      // generate accessible routes map based on grantedPolicies      store        .dispatch("permission/generateRoutes", grantedPolicies)        .then(accessRoutes => {          // dynamically add accessible routes          router.addRoutes(accessRoutes);        });      // reset visited views and cached views      //store.dispatch("tagsView/delAllViews", null, { root: true });    });  }}

使用vue怎么实现身份认证管理和租户管理功能

还有很多需要注意的,比如isStatic===true的角色不可以删除,并且不可以修改名称;新增用户和编辑用户的密码校验规则需要区别对待;保存权限是差异保存。等等。。。有条件的可以看一下ABP的Angular代码。

租户管理

基本功能界面都差不多。。。但是这里有一个”管理功能“的选项,默认是显示”没有可用的功能“:

使用vue怎么实现身份认证管理和租户管理功能

这玩意在界面上没地方添加,也没地方删除,但是这个功能相当实用。它来自ABP的FeatureManagement模块,也称为”特征管理“,这个后面再做介绍。

租户切换

完成了租户管理,那么登录时也应该可以切换租户。

使用vue怎么实现身份认证管理和租户管理功能

切换租户比较简单,就是根据输入的租户名称获取到租户ID,然后调用/abp/application-configuration接口,把租户ID放到请求Header的__tenant字段中即可,之后的请求中也需要这个参数,不传的话就是默认的宿主端。

使用vue怎么实现身份认证管理和租户管理功能

其实ABP后端是可以配置是否启用多租户的,这里也可以根据后端配置来显示或者隐藏租户切换的按钮。跟ABP模板相比,登录界面还缺少一个注册入口,后面再加上吧。

效果

使用vue怎么实现身份认证管理和租户管理功能

使用vue怎么实现身份认证管理和租户管理功能

使用vue怎么实现身份认证管理和租户管理功能

使用vue怎么实现身份认证管理和租户管理功能

使用vue怎么实现身份认证管理和租户管理功能

Vue的优点

Vue具体轻量级框架、简单易学、双向数据绑定、组件化、数据和结构的分离、虚拟DOM、运行速度快等优势,Vue中页面使用的是局部刷新,不用每次跳转页面都要请求所有数据和dom,可以大大提升访问速度和用户体验。

上述内容就是使用vue怎么实现身份认证管理和租户管理功能,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网精选频道。

--结束END--

本文标题: 使用vue怎么实现身份认证管理和租户管理功能

本文链接: https://lsjlt.com/news/278081.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 使用vue怎么实现身份认证管理和租户管理功能
    本篇文章为大家展示了使用vue怎么实现身份认证管理和租户管理功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。按钮级权限src\utils\abp.js:export function&n...
    99+
    2023-06-15
  • 详解vue身份认证管理和租户管理
    目录概述按钮级权限身份认证管理R/U权限权限刷新租户管理租户切换效果最后概述 功能模块的开发往往是最容易的,但是要处理好每个细节就不容易了。就拿这里的身份认证管理模块来说,看似很简单...
    99+
    2024-04-02
  • Oracle CDB管理实现多租户管理功能
    目录CDB的管理1.当前容器2.修改CDB的参数3.修改PDB的参数1.使用ALTER DATABASE 命令修改CDB的参数2.使用ALTER DATABASE命令修改CDB的UN...
    99+
    2022-12-08
    Oracle CDB管理 Oracle多租户管理
  • Oracle CDB管理实现多租户管理功能
    目录CDB的管理1.当前容器2.修改CDB的参数3.修改PDB的参数1.使用ALTER DATABASE 命令修改CDB的参数2.使用ALTER DATABASE命令修改CDB的UNDO模式4.CDB和PDB参数保存位置...
    99+
    2022-12-07
    Oracle CDB管理 Oracle多租户管理
  • Grafana怎么实现用户认证和权限管理
    在Grafana中,用户认证和权限管理可以通过以下步骤实现: 配置数据源:首先,您需要配置Grafana与数据源的连接。可以连接...
    99+
    2024-04-02
  • AngularJS如何实现用户访问身份认证和表单验证功能
    今天小编给大家分享一下AngularJS如何实现用户访问身份认证和表单验证功能的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。...
    99+
    2023-07-04
  • Netdata是否支持用户身份验证和权限管理
    是的,Netdata支持用户身份验证和权限管理。您可以设置不同用户角色,并为他们分配不同的权限,以控制他们对监控数据和系统配置的访问...
    99+
    2024-04-02
  • MongoDB的权限管理与用户认证怎么实现
    MongoDB的权限管理和用户认证是通过创建用户和设置角色来实现的。下面是MongoDB权限管理和用户认证的步骤: 创建管理员用...
    99+
    2024-05-07
    MongoDB
  • Node.js LoopBack 身份验证:详解用户管理和访问控制
    用户模型 在 LoopBack 中,用户由一个用户模型表示。此模型通常具有以下属性: id:用户的唯一标识符 realm:用户所在的领域 username:用户的用户名 password:用户的密码哈希 email:用户的电子邮件地址 ...
    99+
    2024-04-02
  • 如何在SQLServer中进行用户身份验证和授权管理
    在SQL Server中进行用户身份验证和授权管理是非常重要的,以确保数据库的安全性和数据的保护。以下是一些常见的方法来实现用户身份...
    99+
    2024-04-09
    SQLServer
  • MySQL中怎么实现用户账户管理和权限管理
    MySQL中怎么实现用户账户管理和权限管理,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。mysql 的权限体系大致分为5个层级:全局层级全局权...
    99+
    2024-04-02
  • 使用Linux 怎么实现文档多租户管理
    使用Linux 怎么实现文档多租户管理?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。创建账户相关信息groupadd microsoft ; 新增群组useradd -G ...
    99+
    2023-06-10
  • 利用Java怎么实现一个验证身份证功能
    这期内容当中小编将会给大家带来有关利用Java怎么实现一个验证身份证功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。具体如下:package org.cxy.csdn.example;import ja...
    99+
    2023-05-31
    java ava
  • 怎么使用RESTful API通过Vue处理身份验证
    这篇文章主要介绍“怎么使用RESTful API通过Vue处理身份验证”,在日常操作中,相信很多人在怎么使用RESTful API通过Vue处理身份验证问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操...
    99+
    2024-04-02
  • Linux中怎么实现用户和用户组管理
    Linux中怎么实现用户和用户组管理,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、Linux系统用户账号的管理  用户账号的管理工作主要涉及到用户账号的添加...
    99+
    2023-06-10
  • C#怎么实现用户管理
    这篇文章主要介绍了C#怎么实现用户管理的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C#怎么实现用户管理文章都会有所收获,下面我们一起来看看吧。开始:一、用户关注与退订事件:在之前的消息处理中,我们在UserM...
    99+
    2023-07-02
  • Vue后台管理系统怎么实现分页功能
    这篇文章主要介绍“Vue后台管理系统怎么实现分页功能”,在日常操作中,相信很多人在Vue后台管理系统怎么实现分页功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue后台管理系统怎么实现分页功能”的疑惑有所...
    99+
    2023-06-21
  • springboot权限管理功能怎么实现
    本篇内容介绍了“springboot权限管理功能怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!功能清单菜单管理:可以实现对后台管理系...
    99+
    2023-07-02
  • MongoDB中怎么实现用户管理
    本篇文章给大家分享的是有关MongoDB中怎么实现用户管理,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。  ● 条件一:服务器启动的...
    99+
    2024-04-02
  • 怎么在Vue中使用Element处理用户管理模块
    今天就跟大家聊聊有关怎么在Vue中使用Element处理用户管理模块,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、权限管理模块的设计我们知道,权限管理一般都会涉及到用户、组织机构...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作