如何编码的redirect_uri为facebook登录

本文关键字:uri facebook 登录 redirect 何编码 编码 | 更新日期: 2023-09-27 17:50:42

我正试图为facebook建立一个登录链接,我只在某些情况下得到错误。我试图在redirect_uri令牌中指定一个查询字符串参数,以便我可以在登录后将它们重定向到我网站的特定区域。以下是可行和不可行的方法。

&redirect_uri=http://mydomain.com/login?returnUrl=returnUrl - works&redirect_uri=http://mydomain.com/login?returnurl=/return/url -不起作用&redirect_uri=http%3a%2f%2fmyagentcheckin.com%2flogin%3freturnUrl%3d%2freturn%2furl -不工作

似乎是/在查询字符串导致它失败。当我尝试它时,Facebook返回一个错误。有人知道怎么解决这个问题吗?

如何编码的redirect_uri为facebook登录

不包括returnUrl参数作为redirect_uri值的一部分,而是使用state参数来存储这些数据。

例如,

https://graph.facebook.com/oauth/authorize?type=web_server& client_id = {appid}, redirect_uri = http://www.yoursite.com/oauth/handshake&状态=/要求/页

我也遇到过类似的情况,尤其是上面提到的多个重定向。

我的解决方案是将returnUrl放入用户会话(或者可能是cookie)中,这样我就不必纠结于双重编码。对于redirect_url,只需省略querystring。

尝试使用这个API放在一起。它将为您消除这些麻烦。

不需要url编码。

样本验证

Imports Branches.FBAPI
...
Dim SI As New SessionInfo("[application_id]","applicaiton_secret")
SI.AuthenticateUser("http://[my url]", New SessionInfo.PermissionsEnum(){SessionInfo.PermissionsEnum.email, SessionInfo.PermissionsEnum.read_stream}))

从该页面读取您提供的URL的响应。

Dim FSR = FS.ReadFacebooAuthResponse

当我尝试你所做的时,我得到了一个重定向回调,就像这样。http://mydomain.com/login?returnurl=%2Freturn%2Furl&代码=…

解码"returnurl"值。