【问题标题】:How can i logout from twitter from my application using fabric framework in iOS我如何使用 iOS 中的结构框架从我的应用程序中注销 twitter
【发布时间】:2016-11-04 06:34:21
【问题描述】:

在我的 iOS 应用程序中,我使用 fabric frameworkTWTRComposer” 集成了 twitter 登录。 首次登录并在 Twitter 上发布 twit 时工作正常。 但我无法在我的应用程序中从 Twitter 注销。 第二次我尝试登录时。 twitterlogin 视图控制器无法打开。 所以请任何人都可以为我使用 TWTRComposer

从我的应用程序中成功登录和注销提供解决方案

【问题讨论】:

  • Twitter.sharedInstance().logOut() 是注销的方法
  • 我试过这个“Twitter.sharedInstance().logOut()”。但它不起作用
  • 所以...它不工作吗????
  • 没有伙伴.. 它不工作
  • 是的,正是我的问题,你明白了。我也检查了这个断点方式。我认为 twitter 注销成功没有完成。所以当第二次进入 twitter 的应用程序登录视图控制器时没有打开

标签: ios twitter


【解决方案1】:

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

这里是文档的链接:Twitter object iOS reference

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

[[Twitter sharedInstance] session]

如果 session 为 nil,那么他们没有登录。

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

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];
    }

【讨论】:

  • 你怎么称呼这个方法呢?我试图设置一个 IBAction 来检查 TW 会话是否处于活动状态,如果是,[[Twitter sharedInstance] logOut];,但没有任何反应,它直接跳转到我的 else 语句,说用户已经登录
  • 你会如何检查清除cookie url并删除它?
【解决方案2】:
[[Twitter sharedInstance] logOut]

[[Twitter sharedInstance] logOutGuest]

将不起作用,因为根据文档:

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

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

根据链接,

允许已注册的应用撤销已发布的 OAuth 2 Bearer 通过提供其客户端凭据来标记。一旦承载令牌具有 已失效,新的创建尝试将产生不同的 Bearer 令牌和失效令牌的使用将不再被允许。

希望对您有所帮助!

【讨论】:

  • 您能否更新您的答案以显示如何准确地使令牌无效以清除 Twitter 会话?一直把我逼疯了,哈哈
【解决方案3】:

使用此代码:

  [[Twitter sharedInstance] logOut];

【讨论】:

  • 此方法无效。小心解释如何使用它?我们都知道这是 twitter 建议在 dev.twitter 网站上使用的方法...
【解决方案4】:

删除 cookie - 没有帮助。

我发明了自己的重新登录流程:

我需要用户电子邮件才能进一步登录,所以只有 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]];
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-02
    • 2011-10-25
    • 2014-07-27
    • 2023-03-31
    • 2019-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多