zoukankan      html  css  js  c++  java
  • 开放平台多租户设计

    一、流程

    1、开放平台的账户注册,注册后需要完善公司信息,建立当前开放平台账户和公司之间的关系

          前提:超级管理员登录后需要给普通角色增加访问授权,能够添加自己的租户公司信息

          开放平台用户注册:

          -------默认为租户普通角色,默认关联公司为蜂擎公司(是系统级别)【在自己的租户列表不显示】,

          -------负责增加自己下属的租户公司,给公司选择添加应用

          -------同时,首页有系统管理连接出现,当前账户可以进入开放平台后台,进行日常的管理,比如充值.....

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

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

        前提:超级管理员登录后需要给普通角色增加访问授权,能够添加自己的租户公司信息

        开放平台的注册用户具有管理每个应用租户的功能

        开放平台用户注册的是开放平台账户,默认开放平台角色,默认添加关联公司(蜂擎)

         每个应用中利用会话保存在company

        开放平台超管建立

              用户角色(普通-开放平台账户)

        购物车内添加租户切换功能,记录当前准备进入或选择APP的租户公司,利用会话保存即将进入或操作的公司在incompany

        切换时不要修改 会话company,而应该修改会话incompany

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

     概念:

    开放平台的用户----租户

    租户可以添加自己下属的公司信息

    租户切换公司,给公司添加应用(添加应用时候,创建以当前开放平台账号创建对应应用的管理员)

    进入应用(利用当前用户信息和具体app来实现登录),应用中界面需要实现系统管理连接,点击

    2、注册成功登录后,需要在上下文里保存当前用户的所在公司信息

    3、普通开放平台用户(租户)选择要购买的应用,进入应用介绍,进行购买,购买成功后,

          在对应应用中建立管理员账户(账户名和电话和密码一致),账户关联的公司是开放平台账户所在公司

          同时,建立公司和应用之间的关系,按照公司,可以查询出选择了哪些应用

    4 、开放平台内我的应用,按照我当前的公司,查询出我选购的应用

          点打开某个应用,---请求后台以当前的用户身份去登录具体某个应用,返回/auth?opencode--在客户端作重定向到具体应用

           具体应用处理opencode,在应用内作具体登录。----进入应用后,点击系统管理,以当前用户身份到平台登录

          var sysLoginUrl=settings.paasUrl()+"web/auth/userCtl/login?appKey="+settings.appKey+"&toKey="+settings.paasKey;
           var x={userName:user.userName,password:user.password,mobile:user.mobile};
          var restResult=await this.restS.execPost({u:x},sysLoginUrl);
           来源appKey="+settings.appKey
           目的toKey="+settings.paasKey;-登录成功后需要去的目的APP
    返回值是jumlUrl(平台后台管理地址)?code=xxxx&srcKey=xxxx,平台后台处理会
         app.get("/auth",async function(req,res){
            var code=req.query.code;
            var srcKey=req.query.srcKey;
            if(!code){
                return res.redirect("/admin");
            }else{
                await userCtl.authByCode(req);//在平台登录,添加公司上下文信息
                res.redirect("/admin?appKey="+srcKey);--重定向进入平台管理后台,上下文是某个具体应用
            }
        });
     
  • 相关阅读:
    模拟扑克的洗发牌
    结构体 枚举类型
    return、break和continue
    clipboard.js操作剪贴版——一些移动端交互和兼容经验
    国外主机如何ICP备案
    js文件操作之——导出Excel (js-xlsx)
    深入浅出写一个多级异步回调从基础到Promise实现的Demo
    一个考察闭包的最基础的面试题
    shell常用命令及正则辅助日志分析统计
    node-webkit笔记
  • 原文地址:https://www.cnblogs.com/justart/p/11540933.html
Copyright © 2011-2022 走看看