想想过去的一周(19/12/21)

echosoar 原创发表于 2019/12/21 19:55:21
#一周思考
来到Node架构组有一段时间了,自己其实很多时候都有一种错觉,觉得自己Node相关的技术得到了很多的提升,已经到达一个相对于较高的水平了,但是最近这一周仔细想了想还是有很多很多不足的,因此就计划列一个Node.js深入大纲,一件件事情去做来补足自己弱的地方,希望能在接下来一个月的时间中产出几篇学习文章。
另外本周把serverless框架中最核心的插件生命周期与hooks机制抽离了一个小包,同时保持对现有serverless插件的兼容,之前看serverless框架代码的时候总有一些地方搞不明白为什么要那么设计,直到自己写到实现那个功能的时候瞬间就明白了为什么要这样子。其实看各种代码都一样,单纯的看代码有很多时候效率是很低的,如果自己尝试动手写一个简单版本,那么就会高效简单很多。
之前一直在想是否要做一个单点登录,把自己的博客、工作台等等各种网站都整合成一个账号体系,犹豫了很久还是去做了,是因为随着站点越来越多,每个站点都要设计和实现一套用户系统就很烦,而且每一个系统都要注册一个账号即不好记,也很麻烦。
于是用了一些时间设计了一套在我看来还算可行的方案:
  1. 每个站点都到登录中心进行站点注册,提供一些站点的基本信息、登录成功回跳地址、权柄密钥和用户状态同步地址。
  2. 在用户访问此站点的时候自动带上站点id跳转到统一登录。
  3. 统一登录通过站点id获取站点的信息
  4. 进行用户登录校验(提供账号、邮箱、手机号、微信微博三方登录等各种方式)
  5. 用户登录成功后通过站点密钥来生成只能用在这个站点的权柄,并设置有效时间
  6. 拼接权柄与回跳地址,回跳回原网站
  7. 原网站拿到权柄之后通过密钥来解密,使用解密后的key调用登录中心的接口来获取对应用户信息
  8. 原网站拿到用户信息后放入自己的session中进行维护,至此登录成功