如何让用户从twitter fabric ios注销

问题描述 投票:8回答:9

我使用Twitter的结构创建了一个基本的应用程序,允许用户在我的应用程序中发推文并提供Twitter登录。每件事都是我想要的。

我的应用如何工作

如果用户没有登录到Twitter,我的应用程序允许他登录,如果他登录,则直接允许他发推文。

现在大部分来了

正如我在许多应用程序中看到的,我可以从应用程序中删除我已签名的帐户。而且我无法获得任何帮助我实现此目的的方法。我想允许用户在他/她想要的时候在我的应用程序中从twitter注销。

我用谷歌搜索,但我没有找到任何东西

这是我的代码:

- (IBAction)LogOut:(id)sender
{
    [[Twitter sharedInstance]logOut];
}

- (IBAction)LogMeIn:(id)sender
{
[[Twitter sharedInstance] logInWithCompletion:^
 (TWTRSession *session, NSError *error) {
     if (session) {
         NSLog(@"signed in as %@", [session userName]);
         [LoginButton setTitle:@"LogOut" forState:normal];

     } else {
         NSLog(@"error: %@", [error localizedDescription]);
     }
 }];
}
ios twitter xcode6 twitter-oauth
9个回答
9
投票

更新:2016年5月 - 框架已更改,因此此答案不再相关。

看到这个答案:https://stackoverflow.com/a/35765833/940709和这个答案:https://stackoverflow.com/a/30916904/940709而不是。

[[[Twitter sharedInstance] sessionStore] logOutUserID:USERID];


14
投票

这是来自Foundation框架的Cookie的一个问题我在下面的代码的帮助下解决了这个问题

NSURL *url = [NSURL URLWithString:@"https://api.twitter.com"];
NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:url];
for (NSHTTPCookie *cookie in cookies)
{
    [[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie];
}

13
投票

你需要使用下面的代码

[[[Twitter sharedInstance] sessionStore] logOutUserID:USERID];

提供要注销的用户的用户标识。


8
投票

这是Swift 3最简单的答案:

let store = Twitter.sharedInstance().sessionStore
        if let userID = store.session()?.userID {
            store.logOutUserID(userID)
        }

或者您可以使用Naeem的答案,但在store.session之后添加()


3
投票

退出代码来自Twitter文档:

Objective-C的

TWTRSessionStore *store = [[Twitter sharedInstance] sessionStore];
NSString *userID = store.session.userID;

[store logOutUserID:userID];

迅速

let store = Twitter.sharedInstance().sessionStore

if let userID = store.session()?.userID {
  store.logOutUserID(userID)
}

2
投票

对于Swift试试这个,

/**
 *  Deletes the local Twitter user session from this app. This will not remove the system Twitter account nor make a network request to invalidate the session.
 *
 *  @param userID ID of the user to log out
 */
Twitter.sharedInstance().sessionStore.logOutUserID(userId)

0
投票

首先确保某些用户已登录,然后执行注销。

NSString *signedInUserID = [TWTRAPIClient clientWithCurrentUser].userID;
if (signedInUserID) {
   [[Twitter sharedInstance].sessionStore logoutUserID:signedInUserID];
}

0
投票

虽然登录提及方法为webBasedForceLogin,但它不会创建进入Safari Cache的条目。

private func twitterLogin() {
    Twitter.sharedInstance().logIn(withMethods: .webBasedForceLogin, completion: { (session, error) in
        if let error = error {
            print(error.localizedDescription)
        }

        guard let session = session else {
            return
        }

        print("success! Welcome \(session.userName).")
        self.twitterButton.setTitle("TWITTER LOGOUT", for: .normal)
    })
}

private func twitterLogout() {
    let sessionStore = Twitter.sharedInstance().sessionStore
    if let userID = sessionStore.session()?.userID {
        sessionStore.logOutUserID(userID)
    }

    twitterButton.setTitle("TWITTER LOGIN", for: .normal)
}

-2
投票

使用以下:

[TWTRSessionStore logout]

推荐使用:

[Twitter logOut] 

已弃用。

鼓励用户调用 - [TWTRSessionStore logout]而不是直接在Twitter实例上调用此方法。

© www.soinside.com 2019 - 2024. All rights reserved.