【发布时间】:2012-08-21 09:56:09
【问题描述】:
我在我的 codeigniter 应用程序中使用 facebook-php-sdk。 当我试图从我的 URL 中删除 index.php 时,我遇到了身份验证问题。
我的 facebook connect 实现很简单,运行良好。 (sdk 核心文件是一个库,以及带有应用数据的 cofig 文件)当我输入时,身份验证效果很好:
myapp.com/index.php/welcome
但是当我尝试时:
myapp.com/welcome
我可以单击并单击并单击登录 - 页面就会刷新。
我的欢迎控制器:
public function __construct()
{
parent::__construct();
// Your own constructor code
$CI = & get_instance();
$CI->config->load("facebook",TRUE);
$config = $CI->config->item('facebook');
$this->load->library('facebook', $config);
}
public function index()
{
echo CI_VERSION;
$user = $this->facebook->getUser();
if($user) {
$user_info = $this->facebook->api('/me');
echo '<pre>'.htmlspecialchars(print_r($user_info, true)).'</pre>';
} else {
echo "<a href=\"{$this->facebook->getLoginUrl()}\">Login using Facebook</a>";
}
}
就这么简单:经过身份验证后,它只会打印我的 fb 帐户数据。
我的 .htaccess:
RewriteCond %{THE_REQUEST} ^GET\ /index\.php/?([^ ]*)
RewriteRule ^index\.php/?(.*) /$1 [R,L]
RewriteCond $0 !^index\.php($|/)
RewriteRule .* index.php/$0 [L]
更新
mysite.com/welcome 我的登录网址不工作
https://www.facebook.com/dialog/oauth?client_id=487********73&redirect_uri=http%3A%2F%2Fmysite.com%2Fwelcome&state=ae51191b8eabf884ead0c116e7e28b4d
来自 mysite.com/index.php/welcome 工作正常
https://www.facebook.com/dialog/oauth?client_id=487********73&redirect_uri=http%3A%2F%2Fmysite.com%2Findex.php%2Fwelcome&state=ae51191b8eabf884ead0c116e7e28b4d
【问题讨论】:
-
你在
application/config/config.php中设置了$config['index_page'] = '';吗? -
@goldenparrot - 是的,我有 :)
-
你能告诉我们登录网址是什么吗?
-
好的,在我的帖子中检查更新:)
-
您的
.htaccess代码似乎在我的本地服务器上产生了错误。您是否尝试过 CI 文档中描述的更简洁的 htaccess 代码:Codeigniter URLs。另外:欢迎您的默认控制器吗?在这种情况下,您无需致电/welcome;您应该能够重定向到您的站点根目录。
标签: facebook codeigniter facebook-php-sdk