在我的iOS应用程序中,我使用结构框架“ TWTRComposer ”整合了Twitter登录。 首次登录并在Twitter上发布twit时工作正常。 但我无法在我的应用程序中从twitter注销。 我第二次尝试登录twitterlogin视图控制器无法打开。 所以任何人都可以使用 TWTRComposer
从我的应用程序中成功解析登录和注销答案 0 :(得分:2)
[Twitter sharedInstance]
对象有两种注销方法:logOut和logOutGuest。
以下是文档的链接:Twitter object iOS reference
仅供参考,您可以使用会话参数(如下所示)检查用户是否已登录
[[Twitter sharedInstance] session]
如果会话为零,则表示他们未登录。
如果上面的东西不起作用,请尝试下面的事情,可能饼干仍然存在。
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];
}
答案 1 :(得分:1)
[[Twitter sharedInstance] logOut]
和
[[Twitter sharedInstance] logOutGuest]
不起作用,因为根据文档:
从此应用删除本地Twitter用户会话。这不会 删除系统Twitter帐户也不发送网络请求 使会话无效。
另外,您需要使oauth返回的令牌无效。您可以从twitter's文档获得帮助。使用此REST Web服务以使令牌无效。将access_token
传递给帖子请求。
根据链接,
允许已注册的应用程序撤销已颁发的OAuth 2承载 令牌通过提供其客户端凭据。一旦承载令牌有 已失效,新创作尝试将产生不同的持有者 将不再允许令牌和无效令牌的使用。
希望它有所帮助!
答案 2 :(得分:0)
使用此代码:
[[Twitter sharedInstance] logOut];
答案 3 :(得分:0)
删除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]];
}