作者codemonkey (程式猿)
看板PHP
标题[请益] Google OpenID不给重新导向的原因?
时间Thu Nov 3 16:51:40 2011
已经修好罗,原来BUG是
我送出/处理 GET URL的程式有逻辑错误,
导致重新导向的回圈 ......
会有这个BUG是因为
1.Facebook和Google OpenID returns URL处理方法不同
2.当初把Facebook的returns处理程式复制、改成Google版本
3.没有修改到差异的部份....
再次证明版本控制的重要性
---------------------------------------------
我目前在玩 Google和Facebook的OpenID API
(Web API,用GET丢来丢去的)
结果发现在同一个已经注册的网域下,
Facebook的认证结果可以丢到(Return to)任意PHP网页,
但是Google就告诉你网页转向不被接受...
(因为我是用PHP4接Web API硬干,所以就来这边问了)
然後去Google的注册网页重新看一遍,
也没发现需要特别设定的东西...
请问有人遇过类似的问题吗?
另外是不是无法用API让使用者撤销对Web App的授权啊?
也就是说会员管理机制需要自己写,OpenID只帮你验证、
取消授权需要使用者亲自在Provider端动手?
附上错误讯息
Firefox:发现伺服器要将此网址重新导向的要求无法完成。
Chrome:您并未获得授权执行此要求。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.124.71.13
1F:→ bigair:传了哪些变数过去? 可以贴来看看吗 11/03 22:19
附上送出查询的片段程式码:
http://codepad.org/cgwQclzF
当中的<DOMAIN URL>和<REDIRECT URL>,就是要放注册网域、
接收回传GET URL的网址
<REDIRECT URL>我目前只能放注册网域,如果改成 网域/check.php
之类的,就会得到未授权...之类的讯息
※ 编辑: codemonkey 来自: 180.217.132.253 (11/03 23:26)
2F:→ bigair:是不是你 realm 跟 return_to 的 domain 不一样? 11/03 23:51
应该不是,因为现在就算改成一样,也不能用了 XD
通通会回覆未授权讯息...不过Facebook还是可以动作
还有一个测试的方法,再申请一个网域做测试...
不过我要先分时间去写後台的功能了
※ 编辑: codemonkey 来自: 59.124.71.13 (11/04 08:46)
※ 编辑: codemonkey 来自: 180.217.79.120 (11/05 20:18)