单点登录,简称sso (Single Sign On)
在一家互联网公司如果有多个产品线,不同的产品需要用到同一套账号体系,这就引入单点登录。不会存在不同的产品使用不同的账号。
既然是同一套账号体系,所以在数据库端就需要有一个账号中心,用来管理账号,例如父应用,子应用,是共用同一套账号体系,用户在父应用注册了账号,这时候账号中那边就新增了一个账号,这时候用户想在子应用登录,只需要授权即可登录,不需要在注册。
我们常见的微信,而我们要登录微信邮箱,微信读书,等等产品,这时候只需要授权登录即可,这里需要是腾讯的产品,不是腾讯的产品,例如我们这的简书,是通过微信登录,这只是获取微信头像昵称等基本信息,和登录微信读书等是不同的。
这就是单点登录,那么如何设计单点登录,作为设计人员要注意些什么,哪些字段值共享共用的,哪些字段是专属的?
说到账号,从简设计,手机号加+验证码,即可以完成注册并登录的动作。常规账号体系统,还需要有密码,可以考虑绑定邮箱,微信,等第三方应用。根据具体的应用场景共享共用的字段宜少不宜多。设计到具体业务层的字段,则在具体业务层上添加该账号信息,他也不属于账号中心。
单点登录方式是通过cookie作为凭证媒介,存放在用户端,用户登父应用注册并之后,应用返回一个加密的cookie,当用户访问子应用,携带上这个cookie,授权应用解密cookie并进行校验,校验通过则登录当前用户。