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);--重定向进入平台管理后台,上下文是某个具体应用
            }
        });
     
  • 相关阅读:
    fn project 试用之后的几个问题的解答
    fn project 扩展
    fn project 生产环境使用
    fn project 对象模型
    fn project AWS Lambda 格式 functions
    fn project 打包Function
    fn project Function files 说明
    fn project hot functions 说明
    fn project k8s 集成
    fn project 私有镜像发布
  • 原文地址:https://www.cnblogs.com/justart/p/11540933.html
Copyright © 2011-2022 走看看