Php 雅虎OAuth与'&';重定向URL中的字符

Php 雅虎OAuth与'&';重定向URL中的字符,php,redirect,oauth,yahoo-api,Php,Redirect,Oauth,Yahoo Api,刚刚用PHP完成了一个OAuth客户端对象的编码,它在Facebook、Google、LinkedIn、Live和Yahoo上都能正常工作,但出现了异常故障 当一个复杂的重定向URL被传递到Yahoo OAuth服务器进行授权时,除了Yahoo将URL中的所有&字符转换为&字符短语导致我在PHP代码中生成str\u replace() 授权的原始重定向URL: 和OAuthProvider=Yahoo 授权操作时产生的重定向URL: &OAuthProvider=Yahoo 这会导致

刚刚用PHP完成了一个OAuth客户端对象的编码,它在Facebook、Google、LinkedIn、Live和Yahoo上都能正常工作,但出现了异常故障

当一个复杂的重定向URL被传递到Yahoo OAuth服务器进行授权时,除了Yahoo将URL中的所有
&
字符转换为
&字符短语导致我在PHP代码中生成
str\u replace()

授权的原始重定向URL:

OAuthProvider=Yahoo

授权操作时产生的重定向URL:

&OAuthProvider=Yahoo

这会导致URL参数在黑暗中丢失!在PHP代码中使用
str_replace()
可以完成修复工作,但我对此不满意


你知道为什么会发生这种情况,以及如何解决它(官方和法律方面)?提前感谢。

您可以使用URL编码()重定向URL吗?已使用HTTP头重定向(位置)以URL编码格式发送重定向URL。URL编码重定向URL是授权时OAuth协议的要求(据我所知)。对于带有斜杠“/”字符的Facebook,也发现了类似的问题(当然在我的例子中)。