1

我正在使用 MGTwitterEngine 将 Twitter 功能添加到我的应用程序中。简单地提示用户输入用户名和密码然后开始发布非常容易。然而,奇怪的是,我注意到其他应用程序(例如 Foursquare 和 Brightkite)要求您访问他们的网站以将您的 Twitter 帐户与您的foursquare/brightkite/任何帐户相关联。

他们为什么这样做?

我的应用程序是否有理由不提示用户输入 Twitter 用户名和密码,即使它很容易?

非常感谢!特里斯坦

4

3 回答 3

1

这是因为您使用的是Basic Auth,它只是一个用户名/密码。大多数新的 Twitter 应用程序使用更强大的OAuth,这需要您访问 Twitter.com 以允许访问,但不需要用户名/密码。Twitter API 文档声称将很快放弃对基本身份验证的支持,因此您也应该使用 OAuth。

于 2010-04-15T05:47:37.010 回答
0

Twitter 支持 OAuth,它允许您访问他们的帐户而无需直接询问他们的密码。

主要问题是安全性。如果/当您的数据库被黑客入侵时会发生什么?攻击者将有权访问您用户的所有 Twitter 密码。

另一方面,这些网站不存储用户密码;如果他们被黑客入侵,twitter 可以轻松禁用 oauth 凭据,在攻击者造成伤害之前将其锁定。

使用 OAuth;它更安全。

于 2010-04-15T05:37:13.187 回答
-1

只需替换 YOUR_TWITTER_USERNAME 和 YOUR_TWITTER_PASSWORD。下面的代码必须包含在您的 viewController.m 中

NSMutableURLRequest *theRequest=[NSMutableURLRequest requestWithURL: [NSURL 
URLWithString: @”http: //YOUR_TWITTER_USERNAME: YOUR_TWITTER_PASSWORD@twitter. com/
statuses/update. xml”]
    cachePolicy:NSURLRequestUseProtocolCachePolicy
    timeoutInterval: 60. 0] ;
  [theRequest setHTTPMethod: @”POST”] ;
  [theRequest setHTTPBody: [[NSString stringWithFormat: @”status=%@”, 
themessage] dataUsingEncoding: NSASCIIStringEncoding] ] ;
  NSURLResponse* response;
  NSError* error;
  NSData* result = [NSURLConnection sendSynchronousRequest:theRequest 
returningResponse: &response error: &error] ;
  NSLog( @”%@”, [[[ NSString alloc] initWithData: result 
encoding: NSASCIIStringEncoding] autorelease] ) ;
于 2010-04-15T06:00:44.533 回答