这个需求很简单,怎么实现我不管,明天上线

2,945 阅读2分钟
原文链接: mp.weixin.qq.com

这个需求到底要几天

产品:我要做个登录功能

工程师:哦

产品:什么时候能做好

工程师:有什么功能

产品:就是登录啊

工程师:有注册吗,有登录验证码吗,有找回密码吗,有第三方登录吗,有实名信息验证吗,原生实现还是H5

产品:这么复杂啊,我就想要个登录,输入用户名密码就能登录的那种

工程师:哦,这个保守估计,三天吧

产品:三天!别骗我,这个要我毕业设计就做过,拿用户名密码去服务器验证,同时把用户名密码存本地,下次还能直接登录,这么简单的需求,你居然要三天!

工程师:666,要不我做个银行卡管理App,我来把帐号密码都存起来

产品:你当我傻啊,把帐号密码都给你

工程师:我以人格担保不会泄漏你的密码

产品:呵呵,我不信任你,我的密码都是同一个,泄漏了就完了,而且就算我信任你,万一我手机被Root了,或者被抓包了,人家就可以拿到我的密码了啊

工程师:666,居然还知道Root、抓包

产品:不过这确实是个问题,万一泄漏了用户的密码,这责任还真担不起,要不加个密咯

工程师:嗯,本地可以在注册的时候对密码进行Hash,再交给服务器保存,下次登录就对比Hash就可以了

产品:那个……我还想加个第三方登录的需求,比如微信登录……

工程师:这个需要使用到OAuth2.0协议了

产品:啥,啥协议?

工程师:简单的说,就是你不信任我的网站,但是你信任微信这些大厂,所以想用微信帐号登录,那么用户在登录的时候,就不到我的登录界面了,直接走微信的登录授权,用户确认登录后,微信的登录后台会给我一个返回码,我再拿着这个返回码去微信请求一个access_token,这个access_token就好比你的加密身份证,以后我只要看到这个access_token,就会让你登录了。

产品:这不就是手机验证码嘛

工程师:你开心就好,当然,一般来说,这个access_token会带一个过期时间,refresh_token,比如一般的App,过期时间很长也无所谓,但是对于一些安全性比较高的App,比如银行卡的App,过期时间一般就比较短了,一旦access_token过期,我们就可以使用refresh_token去重新请求新的access_token,重新更新登录信息。

产品:嗯,是挺复杂的,看来确实要三天

工程师:不不不,现在要四天了,毕竟给你上了一天课