在编写登录系统时,我在使用Facebook授权用户时遇到了一个小问题。。。
在有人点击"使用Facebook登录"按钮并登录/授权我的应用程序后,Facebook会像往常一样,使用一系列$_GET
变量重定向回我的网站。唯一的问题是,我想检查是否设置了其中一个变量,以检查Facebook登录的状态。
当我尝试提取$_GET
变量时,它会"说"它不存在。问题是我使用mod_rewrite来清理我的url:的外观
#RewriteRule ^([A-Za-z0-9]+)/?$ ?a=b&content=$1 [L]
#RewriteRule ^([A-Za-z0-9]+)/([A-Za-z0-9]+)/?$ ?a=b&content=$1&page=$2 [L]
这会将:www.mysite.com?content=login&page=2
转换为www.mysite.com/login/2
所以我的www.mysite.com/content?state=[...]&code=[...]&...etc
的url一定混淆了Facebook分配的变量和要重写的$_GET
变量。
同样的事情也发生在同时包含内容和页面集的url上。例如:www.mysite.com/content/page?state=......
解决这个问题的最佳方法是什么?我知道我可以找到另一种方式来显示确认的Facebook登录,但我相信,在未来的其他情况下,这将继续是一个问题。
提前谢谢。
尝试使用[L,QSA]
而不是仅使用[L]
。