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 からのログイン URL が機能しない
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 からWORKING FINE
https://www.facebook.com/dialog/oauth?client_id=487********73&redirect_uri=http%3A%2F%2Fmysite.com%2Findex.php%2Fwelcome&state=ae51191b8eabf884ead0c116e7e28b4d