【专题分享】网易低代码平台CodeWave实现多应用间的免登

概要说明:

通过CodeWave平台所开发的制品,如何实现主应用登录后免登跳转到制品,本文档介绍了三种解决方案

三种方案对比:

图片

方案一:子应用自己管理token

注意:该方案主应用和子应用的token没有做到实时同步,子应用自身无法感知到主应用是否退出登录,如果想要共享登录状态,可以了解方案二

1、时序图:

这里包含登录访问和未登录访问,这里根据业务自行选择,也可以两种结合

  • 父应用未登录,直接访问制品子应用

图片

  • 父应用已登录,点击子应用链接

图片

2、接入步骤:

   a. 子应用(制品)定义callback页面:用于接受主应用的的token和redirect_url

   b. 子应用收到回调后在服务端通过token去换取用户信息

   c. 拿到用户信息调用lcap_auth依赖库的createToken从而创建制品内部token,便于之后的认证使用

   d. 创建token成功后跳转到redirect_url页面

3、注意事项:
  1. 主应用需要暴露获取用户信息api,供子应用去调用

  2. 上述接入方式存在一定的安全问题,开发者可以提前将制品子应用id注册到父应用当中,子应用每次获取用户信息可以将应用id和token传过去,父应用则去校验appid。但是这需要开发者去修改自身的应用,可以根据自身业务灵活使用



方案二:token由父应用统一管理

注意:该方案虽然父子应用可以共享登录状态,但是子应用每次请求都需要请求父应用的接口,这会造成一部分的性能损耗

1、时序图:

这里包含登录访问和未登录访问,这里根据业务自行选择,也可以两种结合

  • 父应用未登录,直接访问制品子应用

图片

  • 父应用已登录,点击子应用链接

图片

2、接入步骤

   a、定义callback页面:用于接受主应用的的token和redirect_url

   b、收到回调后需要把token存在cookie中

   c、创建cookie成功后跳转到redirect_url页面

   d、需要复写lcap_auth依赖库中的getUser,从cookie中拿到token后去调用父应用开放的获取用户信息的接口



3、注意事项:

   a、主应用需要暴露获取用户信息api,供子应用去调用

   b、上述接入方式存在一定的安全问题,开发者可以提前将制品子应用id注册到父应用当中,子应用每次获取用户信息可以将应用id和token传过去,父应用则去校验appid。但是这需要开发者去修改自身的应用,可以根据自身业务灵活使用



方案三:通过代理的形式共享cookie

1、这里以nginx举例:

通过nginx代理将主应用的cookie转发的子应用的请求中,这样子应用每次请求都携带主应用的cookie,子应用通过cookie请求主应用则可以获得用户信息

2、时序图:

图片



3、代理配置

4、注意事项

   a、子应用中需要重写lcap_auth依赖库下的getUser方法,且内容是通过cookie调父应用中的获取用户信息的接口

   b、这里基本上和场景二类似,只不过不需要手动去存储token

   c、本文档是用的nginx实现代理,在实际业务中开发者也可以选择其它的代理方式

更多内容分享与交流,微信公众号关注【网易数帆CodeWave】公众号~

  • 21
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值