2013-09-25 3 views
0

Twitter 사용자가 내 Twitter ID를 사용하여 내 사이트에 로그인 할 수 있도록 Twitter에 OAuth를 구현하려고합니다. 이를 위해 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(); 
     } 

그러나 문제가 있습니다. 사용자가 시스템에 로그인 할 때마다 트위터는 전에도 그것을 했음에도 불구하고 응용 프로그램을 인증하도록 요청합니다. 이 문제를 방지 할 수있는 방법이 있습니까? 페이스 북과 구글로 OAuth를 구현했기 때문에 시스템에 로그인 할 때마다 애플리케이션을 인증 할 필요가 없다.

답변

0

내가 아는 한 불행히도. Twitter는 Facebook 및 Google과 같은 OAuth 2.0이 아닌 OAuth 1.1을 사용하기 때문에 사용자가 이미 완료 한 경우에도 응용 프로그램의 승인을 요청하는 중간 단계가 있습니다. 나는 똑같은 문제를 겪고 있으며 우리가 살아야만하는 것처럼 보입니다.

0

내가 부활 시키려고했던 약간 오래된 앱에서 같은 문제가 발생했습니다. http://dev.twitter.com/apps에 내 앱 설정에서 'Twitter로 로그인'을 선택했을 때 문제가 사라 졌다는 것을 알았습니다.