第三方登录,多登录方式的回调地址问题

目前在做第三方登录,碰到一个问题,就是在用户确认提交请求后,会返回一个CODE,不论QQ还是微信还是新浪都会返回这个CODE参数。那么这三个登录的流程处理页面我都指向同一个地址,问题就是怎么知道是QQ还是新浪或者微信发回来的code,然后再调用相关方法进行登录。

不会是做三个地址页面吧?

阅读 3.6k
评论
    4 个回答
    • 26.6k

    第三方登录之前,也就是授权的页面,都是需要传递一个 redirect_url 的参数(也就是你的回调地址),在这个回调地址中,你除了可以接收CODE,还是可以接收其他参数的,你可以加入其他参数进行判断。

    你可以在传入的 redirect_url 后面直接携带一个参数标记QQ还是微博或者是其他平台,那么在回调到你的地址时,这个参数依然存在,你可以通过这个参数进行判断。

      其他的不知道,微信请求的时候可以传一个state参数,微信会把这个参数回调回来

        • 358

        看你的第三方api 是否支持传自己的参数 如果支持 你自己传一个参数 来判断来源即可 如果不支持 那就配不同的地址 其实你这个地址 只是做一个中转 最终走同一个逻辑 就可以了 代码复杂度不会增加很多

          • 0
          • 新人请关照
          /**
           * 单向链表构造函数
           */
          function LinkedList() {
            /**
             * 单向链表中节点的构造函数
             * @param {Any} element 要传入链表的节点
             */
            var Node = function(element) {
              this.element = element;
              //下个节点的地址
              this.next = null;
            }
          
            //单向链表的长度
            var length = 0;
            //单向链表的头结点,初始化为NULL
            var head = null;
          }

          问:今年的ECUG大会你为什么选择“一周一语言”这个演讲主题?ECUG Con 2015有什么特色?

          嗯,你这个问题有意思,是今天采访最让我兴奋的话题了。为什么选择“一周一语言”,有几个原因吧。一方面弥补下中国人没有自己流行语言的遗憾,我认为qnlang(不过我在内部已经改名为qlang,即Q语言)具有流行起来的基因。qlang的定位很独特:它是Go语言的伙伴语言。作为和Go语言交互最便捷的语言,在Go语言成为云计算的事实标准时,在很多场合我们都可以用qlang作为辅助语言完成对系统的灵活定制需求。比如,如果我们用Go语言开发爬虫,我们可以用qlang来定制爬虫的诸多策略,怎么做到这一点我在演讲中会给出示范。

          另一方面大部分人学习的时候太功利,不太重视学习基本功,比如编译原理。事实上我认为编译原理是非常非常重要的一门基础知识。某种程度上说可能是名字不够好,我个人更喜欢把这个领域叫做文本处理。文本处理应用范围非常广泛,想一下我们今天实际生产环境中,什么地方不需要文本处理?在我们现在很火的“大数据”领域,文本处理显然是很重要的基础。

          ECUG Con 2015从议题上看,技术更加细粒度化了,很多讲师都选了一个很小的知识点来展开讲,把话题讲透彻,这是很好的进步。比如洪强宁只讲网络,我只讲文本处理,刘奇讲Raft(有趣的是Etcd作者李响讲Paxos,他们两的议题结合起来听一定很有意思)。比起很泛泛地说XX实践,这样的议题大家可以得到更多干货。

          可能这个问题太小白了,我没有Google到解决方法。。。初学者,安装好PHP、MySQL就已经蒙圈了,求各位大大原谅我提这么蠢的问题。感谢感谢!

          该答案已被忽略,原因:答非所问,不符合答题要求

            撰写回答

            登录后参与交流、获取后续更新提醒

            相似问题
            推荐文章