我正在使用javascript sdk在我的Symfony2.1公司网站上实现Facebook连接。
我正在使用的以下代码正常工作:
<script>
window.fbAsyncInit = function() {
FB.init({
appId : 'my-app-id', // App ID
cookie : true,
xfbml : true,
oauth : true
});
};
function after_click() {
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
window.location = "{{ hwi_oauth_login_url('facebook') }}";
}
});
}
// Load the SDK Asynchronously
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) { window.fbAsyncInit(); return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.onload = window.fbAsyncInit;
js.src = '//connect.facebook.net/fr_FR/all.js';
ref.parentNode.insertBefore(js, ref);
}(document));
</script>
<div class="fb-login-button m_y" scope="email,user_birthday" onlogin="after_click()"></div>
我面临的问题是,我正在绝望地寻找一种方法,在用户登录后将用户重定向到当前页面。现在的行为是用户总是被重定向到我网站的主页。
我知道在使用php sdk时有一个redirect-uri参数,我正在寻找与js sdk类似的东西,我不得不说我很难找到它。
window.location = "{{ hwi_oauth_login_url('facebook') }}";
来自Symfony2 OAuth Bundle,用于管理Facebook连接。也许我需要告诉OAuth Bundle在成功登录后重定向的位置,但无法真正找到解决方案。
感谢您的任何想法。
答案 0 :(得分:0)
好吧,实际上非常简单,只需在我的security.yml中添加use_referer: true
即可完成工作:
security:
...
firewalls:
portal_area:
...
oauth:
resource_owners:
facebook: "/login/check-facebook"
login_path: /connect
failure_path: /connect
always_use_default_target_path: false
default_target_path: /
target_path_parameter: _target_path
use_referer: true
解决。