2015-05-12 104 views
1

我已使用STTwitterAPI登录使用ACAccountStore或浏览器。Twitter从浏览器注销不反映在应用程序

这是一个为我创造问题的情况。当用户使用浏览器中的Twitter(默认Safari浏览器)登录应用程序时,他会将电话支持回应用程序,并且对象存储数据。

一切工作正常。我甚至可以使用该帐户发送推文。但是,如果用户切换到浏览器(默认Safari)并从Twitter帐户注销(他在登录时使用),并返回到应用程序发送推文,则使用旧帐户成功完成(在注销前在浏览器中先前已关联),而不应该是这样的。

我想在用户从浏览器注销时再次询问用户。我甚至尝试过使用verifyCredentialsWithSuccessBlock:errorBlock:但它会将旧用户(注销的用户)的用户详细信息返回给我。

UPDATE:

应用并不重定向用户到浏览器在用户登录后,如果用户在浏览器中出来的意志打开叽叽喳喳我担心的是,他显示登录到一个账户中使用一段时间。登录(应该是这种情况),但是现在用户决定从该帐户注销,或者希望更改帐户并从浏览器注销该帐户(在登录期间使用)。

它获得注销(这很好),但是当他返回到应用程序,并尝试推特或做任何的Twitter帐户,他应该被要求再次登录。为此我使用了验证凭证。但之前登录的访问令牌仍然有效。

因此,如何通知应用程序该用户已注销浏览器或切换帐户。有没有什么办法可以实现。我至少坚持了一个星期。试过每一个选择。他们似乎都不适合我的案子。任何帮助,将不胜感激。谢谢!!!

+0

STTwitter这里的作者。您无法以编程方式从Twitter AP“注销”。没有端点使访问令牌失效。现在,在您的方案中,我不明白为什么您的应用会将用户重定向到Twitter的网站(如果用户已登录)。 – nst

回答

0

我还没有使用STTwitter框架太多。但是我可以自信地说Fabric的TwitterKit使用起来更容易。我在我的应用程序中使用了它用于SignUp和SignOut for Twitter的场景,并且它完美地使用了它提供的方法。您可以点击此处查看:

https://dev.twitter.com/twitter-kit/ios/twitter-login

上注册的语法是这样的:

[[Twitter sharedInstance] logInWithCompletion:^ 
      (TWTRSession *session, NSError *error) { 
    if (session) { 
     NSLog(@"signed in as %@", [session userName]); 
    } else { 
     NSLog(@"error: %@", [error localizedDescription]); 
    } 
}]; 

而对于注销你分别有– logOut方法。

+0

如果用户不使用从应用程序注销但从浏览器注销,该怎么办?该会议可以维持吗? – Tejvansh

+0

不,它不使用浏览器中使用的会话。事实上,这是一个更加基于访问令牌的方法,并允许您让自己的Twitter开发者应用程序获得访问权限,从而使整合更加紧密。 –

+0

我用'-logout'方法。但是,下次尝试登录时,它不会显示登录屏幕。 – NSPratik