我正在使用Opauth通过Twitter / Facebook对我的网站的用户进行身份验证。
当他们离开网站时,我正在为会话保存重定向网址 这样当他们回到网站时,他们会被重定向到页面 他们以前在看。
我有这个非常奇怪的错误,如果会话变量以任何方式从get变量保存,当我被重定向时,会话变量是空白的。
如果我这样做,它就可以正常工作,并且当我是时,var是正确的 从twitter / facebook重定向:
$_SESSION['r'] = 'asdf';
如果我执行以下任何操作,它将返回NULL或空字符串:
$_SESSION['r'] = $_GET['r'];
$_SESSION['r'] = base64_encode($_GET['r']);
$_SESSION['r'] = urlencode($_GET['r']);
我还尝试了一些在javascript中编码的方法,然后才能进入url param ...
window.location.href = '/opauth/twitter?r=' + btoa(window.location.pathname);
这非常令人沮丧,如果有人能帮助我,我会非常感激。
答案 0 :(得分:1)
事实证明并非完全没有 请求或urlencode的工作方式。
纯粹是因为我们虽然结束了 在Twitter / Facebook上回来时,在callback.php上 我们必须经历index.php。
这意味着正在设置的逻辑 $ _SESSION变量也将其清除为 来的时候没有设置$ _GET变量 从Twitter回来。
对于这个混乱,误导的问题感到抱歉。