|
主题:[分享]发现asp版本有个根域名问题,QQ或者新浪登录时候或许会出现无法登录的情况,我是这么解决的。 [收藏主题] |
问题已经发现,已解决,登录域的问题,腾讯API根据填写的调用域来判断是否要你登录。所以当你手机版启用了二级以上域名就存在这个问题,肯定嘛,来路域名是你二级域名,根提交的回调域名根本是不同的。
情况如下: 1,自己有个域名:baidu.com 2,强制解析域名:www.baidu.com(不用baidu.com根域名访问网址,为了SEO权重),访问http://baidu.com将跳转到:http://www.baidu.com 3,去腾讯申请API,回调地址为系统默认:http://www.baidu.com/api/qq/callback.asp (这里肯定是不能填写:根域名加api地址罗,因为你前面做了泛解析到:http://www.baidu.com)对吧? 4,给你的手机站增加二级域名:http://m.baidu.com 好了,问题来自于: 手机站访问:http://m.baidu.com,那么当你调用QQ登录时候,就成了:http://m.baidu.com/api/qq/redirect_to_login.asp,腾讯收到主机头也是这个了,跟你申请的根本不是一个域,(注意,前面已经讲了,你的主机头做了根域跳转,你给腾讯的也是:www.baidu.com,这不是根域的),腾讯就死活不给你qq登录。 我在网上也看了有人说:腾讯回调可以多个地址,我照办了,可腾讯一直不给我通过,那里我重新做了回调地址:http://baidu.com/api.... ; http://www.baidu.com/api.... ; http://m.baidu.com/api.... 共3个,现在都没有给我审核,这个我就不再尝试了。 5,找到了问题,我就改造了一个文件,就行了,远离很简单,手机版本域名过去后,就强制跳转到pc版本再次提交给腾讯就行了。我也尝试修改过登录跳转链接,也会出错,所以后来修改了下面这个文件解决了。6,手机版二级域名和pc版本域名里面的session是不共享的,已做了测试,域不同,是没有值的。 文件:redirect_to_login.asp '================================== '===重新改造,3g网跳转qq登录都经过pc版本 Dim Jump_url : Jump_url = KS.GetDomain & "API/qq/redirect_to_login.asp" Dim server2 : server2 = Lcase(Cstr(Request.ServerVariables("SERVER_NAME")) ) '==主机头 Dim WSetting1 : WSetting1 = Lcase(KS.WSetting(1)) If instr(request.servervariables("http_user_agent"),"Mobile")>0 AND WSetting1 = server2 Then '手机访问,自动跳到手机版 'KS.DIE Jump_url & "<br>" & WSetting1 & "<br>" & Find_Do response.Redirect( Jump_url ) '==手机版跳转至pc保证回调域名 END IF '================================== |
|
支持(0) | 反对(0) 顶端 底部 |
支持(0) | 反对(0) 顶端 底部 |
支持(0) | 反对(0) 顶端 底部 |
<上一主题 | 下一主题 > |