Sair do Facebook Oauth

Eu tenho um aplicativo que se integra ao Facebook usando o Oauth 2.

Posso autorizar com o FB e consultar perfeitamente suas APIs REST e Graph, mas quando autorizo uma sessão ativa do navegador é criada com o FB. Posso fazer logoff do meu aplicativo muito bem, mas a sessão com o FB persiste; portanto, se alguém usar o navegador, eles verão a conta do FB de usuários anteriores (a menos que o usuário anterior faça o logoff manualmente do FB também).

As etapas que tomo para autorizar são:

Ligue para [LINK: graph.facebook.com/oauth/authorize?client_id ...]

Esta etapa abre uma janela de login / conexão do Facebook se o navegador do usuário ainda não tiver uma sessão ativa do FB. Depois de fazer login no facebook, eles redirecionam para o meu site com um código que eu posso trocar por um token oauth.

Ligue para [LINK: graph.facebook.com/oauth/access_token?client_id ..] com o código de (1)

Agora eu tenho um token Oauth e o navegador do usuário está conectado ao meu site e ao FB.

Eu chamo várias APIs para fazer as coisas: ou seja, [LINK: graph.facebook.com/me?access_token= ..]

Digamos que meu usuário deseja sair do meu site. Os termos e condições do FB exigem que eu efetue o Logoff Único; portanto, quando o usuário sai do meu site, ele também é desconectado do Facebook. Há argumentos de que isso é um pouco tolo, mas fico feliz em concordar se houver alguma maneira de realmente conseguir isso.

Vi sugestões de que:

A. Eu uso a API Javascript para efetuar logout: FB.Connect.logout (). Bem, tentei usar isso, mas não funcionou, e não sei exatamente como isso poderia acontecer, pois não uso a API Javascript de nenhuma maneira no meu site. A sessão não é mantida ou criada pela API Javascript, por isso não tenho certeza de como ela deve expirar.

B. Use [LINK: facebook.com/logout.php]. Isso foi sugerido por um administrador nos fóruns do Facebook há algum tempo. O exemplo dado foi relacionado à maneira antiga de obter sessões do FB (não-oauth), então acho que não posso aplicá-lo no meu caso.

C. Use a antiga API REST expireSession ou revokeAuthorization. Eu tentei os dois e enquanto eles expiram o token Oauth, eles não invalidam a sessão que o navegador está usando no momento, por isso não tem efeito, o usuário não está desconectado do Facebook.

Estou realmente um pouco perdida, a documentação do Facebook é irregular, ambígua e bastante pobre. O suporte nos fóruns é inexistente, no momento não consigo nem fazer login no fórum do facebook e, além disso, a própria integração do FB Connect nem funciona no próprio fórum. Não inspira muita confiança.

Ta por qualquer ajuda que você possa oferecer. Derek

ps. Teve que mudar HTTPS para LINK, carma insuficiente para postar links, o que provavelmente é justo o suficiente.

questionAnswers(12)

yourAnswerToTheQuestion