关于最近3天连续加班解决登陆问题的总结
2017-10-24 本文已影响15人
汤昊
公司有几个测试环境, 而且每个测试环境的域名都不一样, 然后就有一个bug, 就是在别的环境上登陆没问题, 在160 环境上就反复循环登陆, 因其中涉及到跟h5 的交互, 所以问题查起来比较棘手
最终理出来的流程 : h5 进商品详情页, 正常加载, 点击立即购买, 调cas/login 验证有没有登陆, 如果有登陆, 刷新详情页, 然后调用 addtocartLiji.json 接口跳入订单详情页面, 去支付订单
问题就在于 h5 调用 cas/login 验证登陆这里, 他们在向后台调这个接口的时候, 我们app端会给这个链接带上一些cookie, 以前对cookie 不甚了解, 最后经过连续3天的攻关, 终于把cookie搞定了.
项目中的问题是 : 每一个cookie 都会对应一个相应的域名, 之前的代码因为所有接口的域名(登陆和其他接口域名)都是一样的 , 所以设置的cookie 没有问题, 但是160 这个环境, 调用登陆的域名变了, 但是app这边设置cookie的时候还是给原来的域名设置的cookie, 所以就导致cookie一直带不过去, 然后h5 那边调用cas/login 的时候因为没有cookie, 所以会一直验证失败, 就会出现循环登陆的问题
最终解决方案: 给登陆所使用的域名setCookie, 然后h5那边去后台请求的时候会带着cookie, 就能验证通过了,
最后总结: 一定要注意, 一个域名对应一个cookie, 想给哪个域名带cookie, 在setCookie 的时候就set到哪个域名