对于注册后的密码登录、第三方登录,大家可能了解得比较多。如下是密码登录和第三方登录的典型界面,一起来看一看:
那么,你了解验证码登录和SSO(Single Sign On)登录吗?无论是在实际工作中,还是在笔试面试中,验证码登录和SSO登录几乎都是绕不开的重要问题。
对于一个互联网人来说,无论是从事何种岗位的工作,都建议来了解这些常见的登录。今天,我来具体聊下这两块,内容不会很复杂,就当是科普性质的介绍。
前几年,我意外地发现,微信没有让用户感知到密码的存在。对于熟悉了账号密码登录方式的我们来说,微信用户居然不需要关注密码,这一点真是做得太成功了。
另外,你应该有这种体会,你登录银行App时,也不需要输入密码,只需要输入手机短信的验证码。这可省心多了,免得去记忆密码。下面,来聊手机验证码登录。
我们来看看知乎网站的登录界面,如下图所示:
具体的方式,应该很清楚了:用户输入手机号码,系统给该手机号码发送验证码,用户收到短信中的验证码后,输入验证码作为临时密码,从而登录系统。
为了安全起见,验证码都有时效性,一般就几分钟,过期无效,这个过期时间通常是在后端设置的。所以,我们要注意,手机的验证码千万不要泄露给别人。
至于后端的开发,那其实也很简单,核心原理就是触发发送短信,然后匹配验证。现在,各种指纹登录、刷脸登录、视频登录的方式层出不穷,原理都类似。
比如,从上图可知,除了短信验证码,还有语音验证码:系统自动给用户打电话,播报包含验证码的语音,用户听懂语音中的数字后,作为验证码登录系统。
关于SSO 登录,其目的是为了解决多系统的统一一次登录问题,业界常用单点登录。我来举个例子,你就明白了。
刚才我特地验证了一下:当我登录淘宝网页后,打开天猫网页时,天猫也自动登录了,这其实就是SSO单点登录。
从业务上讲,淘宝和天猫都是阿里巴巴的亲儿子,让它们共用账号体系,也是顺其自然的事情,用户也方便多了。
但淘宝和天猫域名不同,存在跨域问题,无法直接实现cookie和session共享,那么淘宝和天猫如何实现SSO呢?
从技术上讲,SSO有很多种实现方式,淘宝和天猫的具体实现方式,我们不得而知。下面,我来聊一种典型SSO.
下图是SSO流程,其中CAS Server是SSO后端,Protected App是淘宝后端,Protected App #2是天猫后端:
我们可以看到,通过SSO, 如果用户登录了淘宝,自然就登录了天猫。如果退出登录淘宝,天猫自动退出登录。
SSO的原理并不难,搞懂了SSO, 有利于理解前端和后台的一些重要知识。SSO也是很多笔试和面试的常见考点。
如果是工作中,你当然可以去网上查一些资料。但是,如果是面试现场,让你讲清SSO登录原理,也要了如指掌。
好的,关于验证码登录和SSO登录,先聊这么多,如果大家有疑问,欢迎随时来交流。今天先这样,咱们明天见。