如何使用iOS中的Fabric框架从我的应用程序中从twitter注销

在我的iOS应用程序中,我使用结构框架TWTRComposer ”集成了twitter登录。 首次登录并在Twitter上发布twit时工作正常。 但我无法在我的应用程序中从twitter注销。 我第二次尝试登录 twitterlogin视图控制器无法打开。 所以任何人都可以给我解决方案,使用TWTRComposer从我的应用程序成功登录和注销

[Twitter sharedInstance]对象有两种注销方法:logOut和logOutGuest。

这是docs的链接: Twitter对象iOS参考

仅供参考,您可以使用下面的会话参数检查用户是否已登录

[[Twitter sharedInstance] session]

如果会话为零,则他们不会登录。

如果上面的东西不起作用,尝试下面的东西,可能仍然存在cookie。

 NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; for (NSHTTPCookie *each in cookieStorage.cookies) { // put a check here to clear cookie url which starts with twitter and then delete it [cookieStorage deleteCookie:each]; } 
 [[Twitter sharedInstance] logOut] 

 [[Twitter sharedInstance] logOutGuest] 

不会起作用,因为按照文档:

从此应用程序中删除本地Twitter用户会话。 这不会删除系统Twitter帐户,也不会发出网络请求以使会话无效。

另外,您需要使oauth返回的令牌无效。 你可以从twitter的文档中获得帮助。 使用此REST Web服务以使令牌无效。 将access_token传递给post请求。

根据链接,

允许注册的应用程序通过提供其客户端凭据来撤销已颁发的OAuth 2承载令牌。 一旦承载令牌失效,新的创建尝试将产生不同的承载令牌,并且将不再允许使用无效的令牌。

希望它有所帮助!

使用此代码:

  [[Twitter sharedInstance] logOut]; 

删除cookie – 没有帮助。

我为relogin创建了自己的流程:

我需要用户电子邮件才能进一步登录,所以只有WebBasedLogin

 // Get first twitter acc (check if it exists etc...) ..... // This method will be used if user the same TWTRLoginMethod loginMethod = TWTRLoginMethodSystemAccounts; // Check if it is the Previous twitter user (whom was stored in userDefaults) if (![[STLUserDataManager lastTwitterUser] isEqualToString:[firstTwitterAccount username]]) { // if user is new - ForceLogin loginMethod = TWTRLoginMethodWebBasedForceLogin; } // inside completion { ... // Store userName in userDefaults [STLUserDataManager storeTwitterUser:[firstTwitterAccount username]]; }