我使用http://github.com/bengottlieb/Twitter-OAuth-iPhone/tree/master作为我的iPhone应用中的Twitter + Oauth。我正在尝试创建一个可以登录并注销Twitter的Facebook连接功能。这Twitter + Oauth的实现不使用会话,所以我不确定这是如何工作的。iPhone上的Twitter + Oauth:你如何注销?
有没有人有这方面的经验,如果是的话,我将如何去注销?
我使用http://github.com/bengottlieb/Twitter-OAuth-iPhone/tree/master作为我的iPhone应用中的Twitter + Oauth。我正在尝试创建一个可以登录并注销Twitter的Facebook连接功能。这Twitter + Oauth的实现不使用会话,所以我不确定这是如何工作的。iPhone上的Twitter + Oauth:你如何注销?
有没有人有这方面的经验,如果是的话,我将如何去注销?
我能够模拟一个注销用下面的代码:
- (IBAction)logoutOfTwitter:(id)sender {
[oauthEngine release];
oauthEngine = nil;
[[NSUserDefaults standardUserDefaults] setObject:@"" forKey: @"authData"];
}
这也适用于:
[oauthEngine clearAccessToken];
非常感谢@Justin加拉格尔!
我一直在寻找无处不在的答案,并且实际上在前一段时间看到了你的答案,但是没有想到在那里我还没有尝试过任何东西。
我把每一个建议吧,最后的答案似乎是你的组合和一个在这里:github_bengottlieb_Twitter-OAuth-iPhone_issues_41
什么我没有做已经(你认为)是:
oauthEngine = nil;
[[NSUserDefaults standardUserDefaults] setObject:@"" forKey: @"authData"];
或者对于我来说:
_engine = nil;
这使得Twitter的视图控制器再次弹出,但没有用户名& passwor d提示 - 因此只允许和拒绝按钮。
如果你想让它完全注销,因此下一次提示用户输入新的凭据(无需重新启动应用程序),您需要设置:
_clearsCookies = YES;
在MGTwitterEngine类。
再次感谢!
做注销,你需要照顾的几件事情像
否则会制造麻烦&即使该应用程序会得到崩溃时,你会尝试重新登录&它可以存储你的访问令牌。其中一个将无法以新的用户名& password登录。因此,这是您在注销时需要注意的强制性部分。
- (IBAction)logoutOfTwitter:(id)sender
{
[_engine clearAccessToken];
[_engine clearsCookies];
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"authData"];
[[NSUserDefaults standardUserDefaults]removeObjectForKey:@"authName"];
NSLog(@"%@",[[NSUserDefaults standardUserDefaults]valueForKey:@"authName"]);
NSLog(@"%@",[[NSUserDefaults standardUserDefaults]valueForKey:@"authData"]);
[_engine release];
_engine=nil;
}
希望现在会非常清楚。试试吧。
您必须清除Cookie中的Browser Bcz _engine商店用户名和密码。
下面是Twitter中LogOut的正确代码。
-(IBAction) onLogOutClick:(id)sender
{
[_engine clearAccessToken];
[_engine clearsCookies];
[_engine setClearsCookies:YES];
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"authData"];
[[NSUserDefaults standardUserDefaults]removeObjectForKey:@"authName"];
NSLog(@"%@",[[NSUserDefaults standardUserDefaults]valueForKey:@"authName"]);
NSLog(@"%@",[[NSUserDefaults standardUserDefaults]valueForKey:@"authData"]);
[_engine release];
_engine=nil;
NSHTTPCookie *cookie;
NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (cookie in [storage cookies])
{
NSString* domainName = [cookie domain];
NSRange domainRange = [domainName rangeOfString:@"twitter"];
if(domainRange.length > 0)
{
[storage deleteCookie:cookie];
}
}
}
伟大伟大。 – ICoder 2011-11-16 04:19:56
- (IBAction为)logoutTwitter:(ID)发送方 {
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"authData"];
[[NSUserDefaults standardUserDefaults]removeObjectForKey:@"authName"];
_engine = [[SA_OAuthTwitterEngine alloc] initOAuthWithDelegate: self];
_engine.consumerKey = @"consumerKey";
_engine.consumerSecret = @"consumerSecret";
[_engine clearAccessToken];
//[_engine clearsCookies];
[_engine release];
_engine = nil;
[[NSUserDefaults standardUserDefaults] setObject:@"" forKey: @"authData"];
NSHTTPCookie *cookie;
NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (cookie in [storage cookies])
{
NSString* domainName = [cookie domain];
NSRange domainRange = [domainName rangeOfString:@"twitter"];
if(domainRange.length > 0)
{
[storage deleteCookie:cookie];
}
}
[self.navigationController popViewControllerAnimated:YES];
}
该代码将成功地登出鸣叫声。
这是否清除用户登录?如果是这样,这是一个更清洁! – 2009-12-05 02:59:55