Facebook JS SDK在页面加载时注销

时间:2012-12-11 08:57:44

标签: javascript jquery facebook authentication facebook-javascript-sdk

我想知道如何在页面加载时执行此操作。它正在使用“onClick”,即<a href="#" onClick="FB.logout()">Logout</a>&lt; - Works

但如果我有这样的事情:

 // INIT (file 1)
 $ ->
    $('body').prepend('<div id="fb-root"></div>')

    $.ajax
        url: "#{window.location.protocol}//connect.facebook.net/en_US/all.js"
        dataType: 'script'
        cache: true

    window.fbAsyncInit = ->
        FB.init(appId: 'xxxxxxxxxxxx', cookie: true)

       $('#facebook_sign_in').click (e) ->
          e.preventDefault()
          FB.login (response) ->
            window.location = '/auth/facebook/callback' if response.authResponse


    // FILE 2

    <script src="file1.js" type="text/javascript"></script> 
    $(document).ready(function(){
        FB.logout(); <- Nothing happens
    });

调试器说,FB变量没有定义。但是,如果onClick就像魅力一样,那么为什么它会被定义为未定义?

那么,它有可能吗?

2 个答案:

答案 0 :(得分:0)

当你使用FB api时,它似乎尚未加载。

使用$.ajax()加载FB all.js脚本可能是原因,要么为其添加回调函数,要么在html的头部加载脚本。

答案 1 :(得分:0)

请尝试这个。

public class ContactController : Controller
{
    private readonly EMail email;

    public ContactController(Email email)
    {
        this.email = email;
    }

    public IActionResult Contact()
    {
        return View(new Contato());
    }

    [HttpPost]
    public async Task<IActionResult> ContactAsync(Contato contato)
    {
        email.SendAsync(contato);

        return Ok();
    }
}

这是指Facebook JS SDK FB.logout() doesn't terminate user session