2013-09-25 21 views
0

我正在嘗試使用twitter實現OAuth,因此我的用戶可以使用他們的Twitter ID登錄到我的網站。爲此,我使用TweetSharp庫。按照他們的例子,我寫了下面的代碼,似乎工作。與TweetSharp一起使用Twitter OAuth每次用戶想要登錄時,都會被要求授權我的應用

 public ActionResult Login(string oauth_token, string oauth_verifier) 
     { 
      var service = new TwitterService(consumerKey, consumerSecret); 
      if (oauth_token == null) 
      { 
       var requestToken = service.GetRequestToken(Request.Url.ToString()); 
       var uri = service.GetAuthorizationUri(requestToken); 
       return new RedirectResult(uri.ToString(), false); 
      } 
      else 
      { 
       var requestToken = new OAuthRequestToken { Token = oauth_token }; 
       OAuthAccessToken accessToken = service.GetAccessToken(requestToken, oauth_verifier); 

       service.AuthenticateWith(accessToken.Token, accessToken.TokenSecret); 
       TwitterUser user = service.VerifyCredentials(new VerifyCredentialsOptions()); 
       TempData["response"] = string.Format("Your username is {0}", user.ScreenName); 
       return RedirectToAction("Success"); 
      } 
     } 

     public ActionResult Success() 
     { 
      ViewBag.Response = TempData["response"]; 
      return View(); 
     } 

但是,有一個問題。每次用戶登錄到系統時,Twitter都會要求他們授權應用程序,即使他們之前已經完成。有沒有辦法來防止這種行爲?我還在Facebook和Google上實施了OAuth,每次我想登錄系統時都不需要授權應用程序。

回答

0

不幸的是,據我所知。 Twitter使用OAuth 1.1而不是OAuth 2.0(如Facebook和Google),所以在中間有一個手動步驟,用戶被要求授權應用程序,即使他們已經完成了。我有完全相同的問題,似乎是我們必須忍受的事情。

0

我正在嘗試恢復一個稍微老一點的應用程序時遇到同樣的問題。我注意到,當我在我的應用設置http://dev.twitter.com/apps中選擇「使用Twitter登錄」時,問題就消失了。

相關問題