在文章的上部分,我们已经做好了模拟登录的前期准备,接下来就是让操作实现的部分了。一起来继续看看具体的操作步骤吧:
3、申请st码
上面我们已经申请到了淘宝(http://taobao.com)的token,这一步就是用token来换取st码。
到这里很多人可能会有疑问:为什么淘宝登录需要这么麻烦呢?直接在 http://taobao.com 登录不就可以吗?为什么要先在taobao验证用户名密码,通过之后再去 http://alibaba.com 换取st码登录呢?
任何公司的框架都是慢慢演变的结果,我想最开始的淘宝登录肯定没这么复杂。但是随着阿里巴巴的慢慢壮大,很多事业线都划分开来,但是这些事业线之间又有关联性,比如用户登录了淘宝账号之后天猫就不需要再登录了呢?(注意淘宝和天猫的顶级域名不同,所以不能共享cookis)为了解决这个问题,单点登录就出现了。
单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
很多大企业几乎都有做单点登录,那阿里的单点登录系统肯定是由母公司阿里巴巴(http://alibaba.com)来做啦,所有子公司去调用母公司接口!
我们再回来分析淘宝登录为何要如此复杂就很好理解了:用户数据在淘宝这里,所以需要现在淘宝(http://taobao.com)验证用户名和密码,验证通过生成一个token,浏览器拿着token去和阿里巴巴(http://alibaba.com)申请单点登录码(st码),阿里巴巴收到请求验证token通过则返回st码,所以用token换st码的原因就在于单点登录!
理解了设计原理之后,代码实现起来就很清晰了!
4、使用st码登录
成功获取st码之后我们就可以来登录了,这一步是通过st码获取登录的cookies。
到这里我们就已经模拟登录淘宝成功了!
5、获取淘宝昵称
其实上面我们就已经登录淘宝成功并返回用户主页的链接,我们为了进一步验证登录成功,就请求一下淘宝用户主页,顺便把淘宝昵称提取出来吧!
好了,以上我们就完成了用Python模拟淘宝账号登录的操作了,这份操作教程,大家可以测试下有没有漏洞。