假设有两家互联网企业 A 和 B,其中 B 是一家提供相片云存储的公司。即 B 的用户可以把相片上传到 B 网站上长期保存,然后可以在不同的设备上查看。某一天,A 和 B 谈成了一项合作:希望 B 用户在使用 A 的客户端时,也可以观看他在 B 的相片。假设你是技术负责人,需要出一个实现方案,怎么做?
要不让 B 提供一个接口:
http://xxx.xxx.com/getPhoto?account=
参数:
account :B 账号
返回:
指定账号下的所有相片
有了这个接口,A 的客户端只需在界面上显示一个输入框,让用户输入他的 B 账号,然后调用这个接口来获取相片就可以了。
这样可行吗?
NO!为啥?
因为实现并开放这样一个接口,相当于直接把 B 公司的相片资源全部暴露在互联网中,虽然并没有公开,但是对于有点安全意识的技术人员来说,要发现这个接口简直轻而易举。这样的话,B 的用户就没有任何隐私了。
那怎么办呢?这样吧,为了保证不能随便获取别人的相片,我们把接口改成这样:
http://xxx.xxx.com/getPhoto?account=&pwd=
要求A在调用接口之前,先弹出输入框,让用户输入账号密码,然后传给B。B验证账号密码通过,就返回该账号下的所有相片。这样,即