開放平台多租戶設計


一、流程

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);--重定向進入平台管理后台,上下文是某個具體應用
        }
    });
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM