Pergunta

Eu fiz o aplicativo do Twitter usando a biblioteca OAuth e MgtwitterEngine. A fase de login está funcionando bem, mas estou enfrentando problemas no logout. Eu havia encaminhado todo o post de logout para oauth, mas não funciona. Então, alguém pode sugerir o método perfeito para logout do Twitter ...? Ou que mudanças eu tenho que fazer no arquivo da biblioteca para o logout .. !!

Foi útil?

Solução

Não há sinal do Twitter OAuth/Xauth ... você precisa implementar a solução do lado do cliente:

  1. Armazene persistentemente o token de acesso no chaveiro ou no COREDATA (ele nunca expira, a menos que o usuário revogue seu aplicativo da sua conta) quando faça login e use -o nas chamadas subsequentes para o Twitter e "mantendo o usuário assinado"
  2. Ao assinar, exclua qualquer dados relacionados armazenados (neste caso, o token de acesso)

Espero que isso ajude

Outras dicas

Alguém já encontrou a solução para isso? Se sim, por favor poste!

ATUALIZAÇÃO: Eu descobri. No mgtwitterengine.m, pesquise _ClearCookies no método initWithDelegate. Atualmente, isso está definido como não, altere -o para sim. Em seu método de ação para registrar o usuário atual, ligue para [_Engine ClearAccessToken]. Agora execute -o e pronto, funciona!

Eu não sei como fazer logout. Mas se você deseja a tela de login sempre, faça uma coisa (não sei se é a maneira certa), exclua os dados específicos do login que o mecanismo economiza no UserDefaults.

Não vejo isso explicitamente declarado aqui, mas usei a função "ClearAccessToken" no SA_OAuthtwitterEngine para "logout" o usuário atual.

Pode ser um tipo de estúpido, mas isso parece funcionar

- (IBAction)logout:(id)sender {
    [_engine dealloc];
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults removeObjectForKey:@"authData"];
    [defaults synchronize];

    [self presentLoginView];
    }

Eu uso este tutorial para o App Intereate Twitter ao iOS link

Para logout, eu uso a seguir:

[_engine clearAccessToken];

_engine - Esta é a instância da classe sa_oauthtwitterengine.

Você pode chamar esse método no seu método de ibação.

Também preciso deste método

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults removeObjectForKey:@"authData"];
    [defaults synchronize];

Você deve excluir sua conta no aplicativo do Twitter, que está no menu Configurações do seu iPhone.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top