我们正在尝试使用 PHP SDK 将用户登录到我们的 Codeigniter 应用程序,我们使用分段 URI 并且不需要查询字符串,因此我们选择不使用它们。CI 和 Facebook 似乎存在的问题之一是将redirect_uri
参数传递给getLoginUrl()
ex
public function login(){
if(!$this->user){
$this->data['loginUrl'] = $this->facebook->getLoginUrl(array(
'redirect_uri' => 'http://appdomain.com/users/login'
));
$this->load->view('users/login', $this->data);
}else{
redirect('home/index');
}
}
登录 Facebook 后,返回的 URI 有一个code
CI 不喜欢的查询变量,它实质上会破坏路由并显示一个空白页面。
http://appdomain.com/users/login/?code=dsfeoilkjd983274893hflksdfhhewhkdsiue8...
即使我添加$route['users/login/(:any)'] = 'users/login';
到routes.php
,我仍然被重定向到一个空白页面。 Since we are using getAccessToken()
要代表用户进行 API 调用,我们不需要使用code
查询变量来交换访问令牌。MY_Controller
是否可以在将查询字符串路由到之前完全删除查询字符串,可能是在method/action
?
我能够绕过问题的唯一方法是将默认控制器传递给redirect_uri
参数,其他所有内容都不会路由到正确的 URI 并且只会显示一个空白页面。
我们欢迎所有的建议!