如何使用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]]; }