/// <summary> /// Checks a single entry agasint vulnDB Search API. /// </summary> /// <param name="consumerkey"></param> /// <param name="consumersecret"></param> /// <param name="Application"></param> /// <returns></returns> public static string vulndb_appCheck(String consumerkey, String consumersecret, String Application) { try { var requestEndPoint = new Uri("https://vulndb.cyberriskanalytics.com/oauth/request_token"); var authorizeEndPoint = new Uri("https://vulndb.cyberriskanalytics.com/oauth/authorize"); var accessEndPoint = new Uri("https://vulndb.cyberriskanalytics.com/oauth/access_token"); var ctx = new OAuthConsumerContext { ConsumerKey = consumerkey, ConsumerSecret = consumersecret, SignatureMethod = SignatureMethod.HmacSha1 }; var genericSession = new OAuthSession(ctx, requestEndPoint, authorizeEndPoint, accessEndPoint); var targetServiceUri = new Uri("https://vulndb.cyberriskanalytics.com/api/v1/vulnerabilities/search_query?query=\"" + Application.ToString() +"\""); var respText = genericSession.Request().Get().ForUri(targetServiceUri).ToString(); return respText; } catch (WebException ex) { using (var stream = ex.Response.GetResponseStream()) using (var reader = new StreamReader(stream)) { Console.WriteLine(reader.ReadToEnd()); return "Nothing Found for: " + Application.ToString(); } } }
public PreliminaryToken GetOAuthVerifier(Uri callback) { var consumerContext = new OAuthConsumerContext { ConsumerKey = _appKeys.ConsumerKey, ConsumerSecret = _appKeys.ConsumerSecret, SignatureMethod = SignatureMethod.HmacSha1, UseHeaderForOAuthParameters = true }; var session = new OAuthSession( consumerContext, Profile.Current.RequestTokenUrl + "?scope=" + _appKeys.ScopeOfRequest, Profile.Current.AuthorizeUrl, Profile.Current.AccessUrl); if (callback != null) { session.CallbackUri = callback; } var requestToken = session.GetRequestToken(); return new PreliminaryToken { AuthUrl = new Uri(session.GetUserAuthorizationUrlForToken(requestToken)), Token = requestToken }; }
/// <summary> /// Used to Check if the API key is valid or not. /// </summary> /// <param name="consumerkey"></param> /// <param name="consumersecret"></param> /// <returns></returns> public static string CMS_Auditor(String consumerkey, String consumersecret) { try { var requestEndPoint = new Uri("https://vulndb.cyberriskanalytics.com/oauth/request_token"); var authorizeEndPoint = new Uri("https://vulndb.cyberriskanalytics.com/oauth/authorize"); var accessEndPoint = new Uri("https://vulndb.cyberriskanalytics.com/oauth/access_token"); var ctx = new OAuthConsumerContext { ConsumerKey = consumerkey, ConsumerSecret = consumersecret, SignatureMethod = SignatureMethod.HmacSha1 }; var genericSession = new OAuthSession(ctx, requestEndPoint, authorizeEndPoint, accessEndPoint); var targetServiceUri = new Uri("https://vulndb.cyberriskanalytics.com/api/v1/vulnerabilities/search_query?utf8=✓&query=teamviewer"); var respText = genericSession.Request().Get().ForUri(targetServiceUri).ToString(); return respText; } catch (WebException ex) { using (var stream = ex.Response.GetResponseStream()) using (var reader = new StreamReader(stream)) { Console.WriteLine(reader.ReadToEnd()); return "Please Check your API Key and Secret"; } } }
public TradeMeToken AuthenticateWithVerifier(PreliminaryToken preliminaryToken, string oAuthVerifierOrPin) { if (string.IsNullOrEmpty(oAuthVerifierOrPin)) { throw new Exception(); } oAuthVerifierOrPin = oAuthVerifierOrPin.Trim(); var consumerContext = new OAuthConsumerContext { ConsumerKey = _appKeys.ConsumerKey, ConsumerSecret = _appKeys.ConsumerSecret, SignatureMethod = SignatureMethod.HmacSha1, UseHeaderForOAuthParameters = true }; var session = new OAuthSession( consumerContext, Profile.Current.RequestTokenUrl + "?scope=" + _appKeys.ScopeOfRequest, Profile.Current.AuthorizeUrl, Profile.Current.AccessUrl); return new TradeMeToken(session.ExchangeRequestTokenForAccessToken(preliminaryToken.Token, oAuthVerifierOrPin)); }
public void GoogleConsumer() { X509Certificate2 certificate = TestCertificates.OAuthTestCertificate(); string requestUrl = "https://www.google.com/accounts/OAuthGetRequestToken"; string userAuthorizeUrl = "https://www.google.com/accounts/accounts/OAuthAuthorizeToken"; string accessUrl = "https://www.google.com/accounts/OAuthGetAccessToken"; string callBackUrl = "http://www.mysite.com/callback"; var consumerContext = new OAuthConsumerContext { ConsumerKey = "weitu.googlepages.com", SignatureMethod = SignatureMethod.RsaSha1, Key = certificate.PrivateKey }; var session = new OAuthSession(consumerContext, requestUrl, userAuthorizeUrl, accessUrl) .WithQueryParameters(new { scope = "http://www.google.com/m8/feeds" }); // get a request token from the provider IToken requestToken = session.GetRequestToken(); // generate a user authorize url for this token (which you can use in a redirect from the current site) string authorizationLink = session.GetUserAuthorizationUrlForToken(requestToken, callBackUrl); // exchange a request token for an access token IToken accessToken = session.ExchangeRequestTokenForAccessToken(requestToken); // make a request for a protected resource string responseText = session.Request().Get().ForUrl("http://www.google.com/m8/feeds/contacts/default/base").ToString(); }
/// <summary> /// Creates the new OAuth session as well as getting the AccessToken for that Session. /// Here instead of getting the Access Token by exchanging RequestTokens, we are able to just pull it from storage /// </summary> /// <param name="currentBusinessAccount">The current business account.</param> /// <returns> /// Oath Session with the AccessToken held within it /// </returns> public static OAuthSession CreateOAuthSessionAndAccessToken(BusinessAccount currentBusinessAccount) { //Generates the consumer context based on the constants for our IntuitAnywhere App //In this case the Consumer is actually FoundOps var consumerContext = new OAuthConsumerContext { ConsumerKey = OauthConstants.ConsumerKey, SignatureMethod = SignatureMethod.HmacSha1, ConsumerSecret = OauthConstants.ConsumerSecret }; //Generates the OAuth session based on the constants for our IntuitAnywhere App and the ConsumerContext created above OAuthSession oSession = new OAuthSession(consumerContext, OauthConstants.IdFedOAuthBaseUrl + OauthConstants.UrlRequestToken, OauthConstants.AuthorizeUrl, OauthConstants.IdFedOAuthBaseUrl + OauthConstants.UrlAccessToken); oSession.ConsumerContext.UseHeaderForOAuthParameters = true; //Access Token is generated from storage here and saved into the OauthSession oSession.AccessToken = new TokenBase { Token = currentBusinessAccount.QuickBooksAccessToken, ConsumerKey = OauthConstants.ConsumerKey, TokenSecret = currentBusinessAccount.QuickBooksAccessTokenSecret }; return oSession; }
/// <summary> /// Creates a HttpRequest with oAuthSession (OAuth Token) and gets the response with invalidating user /// from QuickBooks for this app /// For Authorization: The request header must include the OAuth parameters defined by OAuth Core 1.0 Revision A. /// /// If the disconnect is successful, then the HTTP status code is 200 and /// the XML response includes the <ErrorCode> element with a 0 value. /// If an HTTP error is detected, then the HTTP status code is not 200. /// If an HTTP error is not detected but the disconnect is unsuccessful, /// then the HTTP status code is 200 and the response XML includes the <ErrorCode> element with a non-zero value. /// For example, if the OAuth access token expires or is invalid for some other reason, then the value of <ErrorCode> is 270. /// </summary> /// <param name="sender">Sender of the event.</param> /// <param name="e">Event args.</param> protected void Page_Load(object sender, EventArgs e) { OAuthConsumerContext consumerContext = new OAuthConsumerContext { ConsumerKey = ConfigurationManager.AppSettings["consumerKey"].ToString(), SignatureMethod = SignatureMethod.HmacSha1, ConsumerSecret = ConfigurationManager.AppSettings["consumerSecret"].ToString() }; OAuthSession oSession = new OAuthSession(consumerContext, Constants.OauthEndPoints.IdFedOAuthBaseUrl + Constants.OauthEndPoints.UrlRequestToken, Constants.OauthEndPoints.AuthorizeUrl, Constants.OauthEndPoints.IdFedOAuthBaseUrl + Constants.OauthEndPoints.UrlAccessToken); oSession.ConsumerContext.UseHeaderForOAuthParameters = true; if ((Session["accessToken"] + "").Length > 0) { oSession.AccessToken = new TokenBase { Token = HttpContext.Current.Session["accessToken"].ToString(), ConsumerKey = ConfigurationManager.AppSettings["consumerKey"].ToString(), TokenSecret = HttpContext.Current.Session["accessTokenSecret"].ToString() }; IConsumerRequest conReq = oSession.Request(); conReq = conReq.Get(); conReq = conReq.ForUrl(Constants.PlatformApiEndpoints.DisconnectUrl); try { conReq = conReq.SignWithToken(); } catch (Exception ex) { throw ex; } //Used just see the what header contains string header = conReq.Context.GenerateOAuthParametersForHeader(); //This method will clean up the OAuth Token txtServiceResponse = conReq.ReadBody(); //Reset All the Session Variables HttpContext.Current.Session.Remove("oauthToken"); // Add the invalid access token into session for the display of the Disconnect btn HttpContext.Current.Session["InvalidAccessToken"] = HttpContext.Current.Session["accessToken"]; // Dont remove the access token since this is required for Reconnect btn in the Blue dot menu // HttpContext.Current.Session.Remove("accessToken"); // Dont Remove flag since we need to display the blue dot menu for Reconnect btn in the Blue dot menu // HttpContext.Current.Session.Remove("Flag"); DisconnectFlg = "User is Disconnected from QuickBooks!"; //Remove the Oauth access token from the OauthAccessTokenStorage.xml OauthAccessTokenStorageHelper.RemoveInvalidOauthAccessToken(Session["FriendlyEmail"].ToString(), Page); } }
public void GetUserAuthorizationUriForTokenWithCallback() { var session = new OAuthSession(new OAuthConsumerContext(), "http://localhost/request", "http://localhost/userauth", "http://localhost/access"); string actual = session.GetUserAuthorizationUrlForToken(new TokenBase {Token = "token"}, "http://localhost/callback"); Assert.Equal( "http://localhost/userauth?oauth_token=token&oauth_callback=http%3A%2F%2Flocalhost%2Fcallback", actual); }
public void GetRequestTokenForConsumerWithoutCallbackUrl() { var consumerContext = new OAuthConsumerContext {ConsumerKey = "key"}; var session = new OAuthSession(consumerContext, "http://localhost/request", "http://localhost/userauth", "http://localhost/access"); RequestDescription description = session.BuildRequestTokenContext("POST").GetRequestDescription(); Assert.True(description.Body.Contains("oauth_callback=oob")); }
/// <summary> /// Creates a HttpRequest with oAuthSession (OAuth Token) and gets the response with invalidating user /// from QuickBooks for this app /// For Authorization: The request header must include the OAuth parameters defined by OAuth Core 1.0 Revision A. /// /// If the disconnect is successful, then the HTTP status code is 200 and /// the XML response includes the <ErrorCode> element with a 0 value. /// If an HTTP error is detected, then the HTTP status code is not 200. /// If an HTTP error is not detected but the disconnect is unsuccessful, /// then the HTTP status code is 200 and the response XML includes the <ErrorCode> element with a non-zero value. /// For example, if the OAuth access token expires or is invalid for some other reason, then the value of <ErrorCode> is 270. /// </summary> // // GET: /CleanUpOnDisconnect/ public ActionResult Disconnect() { OAuthConsumerContext consumerContext = new OAuthConsumerContext { ConsumerKey = ApplicationUserAppValues.ConsumerKey, SignatureMethod = SignatureMethod.HmacSha1, ConsumerSecret = ApplicationUserAppValues.ConsumerSecret }; OAuthSession oSession = new OAuthSession(consumerContext, Constants.OauthEndPoints.IdFedOAuthBaseUrl + Constants.OauthEndPoints.UrlRequestToken, Constants.OauthEndPoints.AuthorizeUrl, Constants.OauthEndPoints.IdFedOAuthBaseUrl + Constants.OauthEndPoints.UrlAccessToken); oSession.ConsumerContext.UseHeaderForOAuthParameters = true; if ((SessionWrapper.accessToken + "").Length > 0) { oSession.AccessToken = new TokenBase { Token = SessionWrapper.accessToken, ConsumerKey = ApplicationUserAppValues.ConsumerKey, TokenSecret = SessionWrapper.accessTokenSecret }; IConsumerRequest conReq = oSession.Request(); conReq = conReq.Get(); conReq = conReq.ForUrl(Constants.IaEndPoints.DisconnectUrl); try { conReq = conReq.SignWithToken(); } catch (Exception ex) { throw ex; } //Used just see the what header contains string header = conReq.Context.GenerateOAuthParametersForHeader(); //This method will clean up the OAuth Token GlobalVariablesWrapper.TxtServiceResponse = conReq.ReadBody(); // Add the invalid access token into session for the display of the Disconnect btn SessionWrapper.InvalidAccessToken = SessionWrapper.accessToken; // Dont remove the access token since this is required for Reconnect btn in the Blue dot menu // HttpContext.Current.Session.Remove("accessToken"); // Dont Remove flag since we need to display the blue dot menu for Reconnect btn in the Blue dot menu // HttpContext.Current.Session.Remove("Flag"); GlobalVariablesWrapper.DisconnectFlg = "User is Disconnected from QuickBooks!"; } return View("Disconnect"); }
private void CreateSession() { X509Certificate2 certificate = TestCertificates.OAuthTestCertificate(); var consumerContext = new OAuthConsumerContext { SignatureMethod = SignatureMethod.HmacSha1, ConsumerKey = consumerKey, ConsumerSecret = consumerSecret, UseHeaderForOAuthParameters = false, }; this.context = consumerContext; this.session = new OAuthSession(this.context, requestUrl, userAuthorizeUrl, accessUrl); }
public void GetRequestTokenForMethodGetDoesNotPopulateBody() { var consumerContext = new OAuthConsumerContext {ConsumerKey = "key"}; var session = new OAuthSession(consumerContext, "http://localhost/request", "http://localhost/userauth", "http://localhost/access"); RequestDescription description = session.BuildRequestTokenContext("GET").GetRequestDescription(); Assert.Null(description.Body); Assert.Null(description.ContentType); Assert.Equal("GET", description.Method); }
private static void Main() { string requestUrl = "https://apis.daum.net/oauth/requestToken"; string userAuthorizeUrl = "https://apis.daum.net/oauth/authorize"; string accessUrl = "https://apis.daum.net/oauth/accessToken"; string callbackUrl = "oob"; var consumerContext = new OAuthConsumerContext { //TODO:Daum OAuth소개 페이지(https://apis.daum.net/oauth/consumer/list)에서 등록된 Consumer 정보 입력 ConsumerKey = "eb3eff10-b95d-455c-8572-e7858a2b34d0", ConsumerSecret = "suz6.HUjzlaG-S9ezBzFQ11FtKhQvv8cdT-9C_hWBFthpUmMTsOuUA00", SignatureMethod = SignatureMethod.HmacSha1, }; //OAuth 준비 var session = new OAuthSession(consumerContext, requestUrl, userAuthorizeUrl, accessUrl); session.WithQueryParameters(new Dictionary<string,string>(){ { "oauth_callback", callbackUrl } }); // 1. request token 받기 DevDefined.OAuth.Framework.IToken requestToken = session.GetRequestToken(); // 인증주소 받기 string authorizationLink = session.GetUserAuthorizationUrlForToken(requestToken, callbackUrl); // 2. 사용자 인증 하기 System.Console.WriteLine("웹브라우저를 실행하여 다음 URL을 접속하세요."); System.Console.WriteLine(authorizationLink); System.Console.Write("\n\n웹브라우저에서 인증 후 반환 된 값을 입력하세요:"); string inputVerifier = System.Console.ReadLine(); // 얻어진 Verifier값을 포함시키기 session.WithQueryParameters(new Dictionary<string, string>() { { "oauth_verifier", inputVerifier } }); // 3. 인증 후 얻은 Verifier값을 이용하여 엑세스 토큰 얻기 DevDefined.OAuth.Framework.IToken accessToken = session.ExchangeRequestTokenForAccessToken(requestToken); // '게시글 쓰기(한줄메모장)' API를 호출 System.Console.WriteLine("OAuth를 통한 인증으로 '게시글 쓰기(한줄메모장)'를 호출하고 XML로 응답 받는 테스트를 합니다."); string apiUrl = "http://apis.daum.net/cafe/write_article/{cafeCode}/{boardId}.xml?"; //{cafeCode} - 카페코드 : //{boardId} apiUrl += string.Format("content={0}&", "여기는 메모를 삽입합니다."); apiUrl += string.Format("hideyn={0}&", "N"); //비밀글일때 Y string responseText = session.Request().Get().ForUrl(apiUrl).ToString(); System.Console.WriteLine(responseText); System.Console.ReadLine(); }
static IOAuthSession CreateConsumer(string signatureMethod) { var consumerContext = new OAuthConsumerContext { SignatureMethod = signatureMethod, ConsumerKey = "key", ConsumerSecret = "secret", Key = TestCertificates.OAuthTestCertificate().PrivateKey }; var session = new OAuthSession(consumerContext, "http://localhost/oauth/requesttoken.rails", "http://localhost/oauth/userauhtorize.rails", "http://localhost/oauth/accesstoken.rails"); return session; }
private static void Main() { string requestUrl = "https://apis.daum.net/oauth/requestToken"; string userAuthorizeUrl = "https://apis.daum.net/oauth/authorize"; string accessUrl = "https://apis.daum.net/oauth/accessToken"; string callbackUrl = "oob"; var consumerContext = new OAuthConsumerContext { //TODO:Daum OAuth소개 페이지(https://apis.daum.net/oauth/consumer/list)에서 등록된 Consumer 정보 입력 ConsumerKey = "eb3eff10-b95d-455c-8572-e7858a2b34d0", ConsumerSecret = "suz6.HUjzlaG-S9ezBzFQ11FtKhQvv8cdT-9C_hWBFthpUmMTsOuUA00", SignatureMethod = SignatureMethod.HmacSha1, }; //OAuth 준비 var session = new OAuthSession(consumerContext, requestUrl, userAuthorizeUrl, accessUrl); session.WithQueryParameters(new Dictionary<string,string>(){ { "oauth_callback", callbackUrl } }); // 1. request token 받기 DevDefined.OAuth.Framework.IToken requestToken = session.GetRequestToken(); // 인증주소 받기 string authorizationLink = session.GetUserAuthorizationUrlForToken(requestToken, callbackUrl); // 2. 사용자 인증 하기 System.Console.WriteLine("웹브라우저를 실행하여 다음 URL을 접속하세요."); System.Console.WriteLine(authorizationLink); System.Console.Write("\n\n웹브라우저에서 인증 후 반환 된 값을 입력하세요:"); string inputVerifier = System.Console.ReadLine(); // 얻어진 Verifier값을 포함시키기 session.WithQueryParameters(new Dictionary<string, string>() { { "oauth_verifier", inputVerifier } }); session.WithQueryParameters(new Dictionary<string, string>() { { "content", System.Web.HttpUtility.HtmlEncode("~다!음@ #요$즘% ^특&수*문(자) -_\'발=+송\\| \"테<스>;트/") } }); //session.WithQueryParameters(new Dictionary<string, string>() { { "content", System.Web.HttpUtility.UrlEncode("한글") } }); // 3. 인증 후 얻은 Verifier값을 이용하여 엑세스 토큰 얻기 DevDefined.OAuth.Framework.IToken accessToken = session.ExchangeRequestTokenForAccessToken(requestToken); // '요즘 가입여부 확인하기' API를 통해 인증 확인하기 System.Console.WriteLine("OAuth를 통한 인증으로 '요즘 가입여부 확인하기'를 테스트합니다."); string responseText = session.Request().Post().ForUrl("https://apis.daum.net/cafe/write_article/JJGO/JVYh.xml?").ToString(); System.Console.WriteLine(responseText); System.Console.ReadLine(); }
private static void Main() { string requestUrl = "https://apis.daum.net/oauth/requestToken"; string userAuthorizeUrl = "https://apis.daum.net/oauth/authorize"; string accessUrl = "https://apis.daum.net/oauth/accessToken"; string callBackUrl = "oob"; var consumerContext = new OAuthConsumerContext { //TODO:Daum OAuth소개 페이지(https://apis.daum.net/oauth/consumer/list)에서 등록된 Consumer 정보 입력 ConsumerKey = "{발급 받은 Key를 입력하세요.}", ConsumerSecret = "{발급 받은 Secret를 입력하세요.}", SignatureMethod = SignatureMethod.HmacSha1, }; //OAuth 준비 var session = new OAuthSession(consumerContext, requestUrl, userAuthorizeUrl, accessUrl); session.WithQueryParameters(new Dictionary<string,string>(){ { "oauth_callback", callBackUrl } }); // 1. request token 받기 DevDefined.OAuth.Framework.IToken requestToken = session.GetRequestToken(); // 인증주소 받기 string authorizationLink = session.GetUserAuthorizationUrlForToken(requestToken, callBackUrl); // 2. 사용자 인증 하기 System.Console.WriteLine("웹브라우저를 실행하여 다음 URL을 접속하세요."); System.Console.WriteLine(authorizationLink); System.Console.Write("\n\n웹브라우저에서 인증 후 반환 된 값을 입력하세요:"); string inputVerifier = System.Console.ReadLine(); // 얻어진 Verifier값을 포함시키기 session.WithQueryParameters(new Dictionary<string, string>() { { "oauth_verifier", inputVerifier } }); // 3. 인증 후 얻은 Verifier값을 이용하여 엑세스 토큰 얻기 DevDefined.OAuth.Framework.IToken accessToken = session.ExchangeRequestTokenForAccessToken(requestToken); // '요즘 가입여부 확인하기' API를 통해 인증 확인하기 System.Console.WriteLine("OAuth를 통한 인증으로 '요즘 글쓰기'를 테스트합니다."); ConsumerRequest cr = session.Request().Post().ForUrl("https://apis.daum.net/yozm/v1_0/message/add.xml"); cr = cr.WithFormParameters(new Dictionary<string, string>() { { "message", System.Web.HttpUtility.UrlEncode("%$가나다^$%^%$^RTY<><><><><") } }); string responseText = cr.ToString(); System.Console.WriteLine(responseText); System.Console.ReadLine(); }
public OauthSessionProvider(IOauthValueProvider valueProvider) { _valueProvider = valueProvider; var context = new OAuthConsumerContext { ConsumerKey = _valueProvider.ConsumerKey, ConsumerSecret = _valueProvider.ConsumerSecret, SignatureMethod = SignatureMethod.PlainText, UseHeaderForOAuthParameters = true }; _session = new OAuthSession(context, RequestUrl, UserAuthorizeUrl, AccessUrl); var accessToken = new AccessToken { Token = _valueProvider.Token, TokenSecret = _valueProvider.TokenSecret }; _session.AccessToken = accessToken; }
public void OAuthGetRequestToken() { var consumerContext = new OAuthConsumerContext () { ConsumerKey = "anyone" }; var api_ref = testServer.GetRootApiRef (); var session = new OAuthSession (consumerContext, api_ref.OAuthRequestTokenUrl, api_ref.OAuthAuthorizeUrl, api_ref.OAuthAccessTokenUrl); IToken request_token = session.GetRequestToken (); // consumerkey "anyone" is hardcoded into tomboy Assert.AreEqual ("anyone", request_token.ConsumerKey); // tokens are of secure length Assert.That (request_token.Token.Length > 14); Assert.That (request_token.TokenSecret.Length > 14); }
static void Main(string[] args) { string requestUrl = "https://apis.daum.net/oauth/requestToken"; string userAuthorizeUrl = "https://apis.daum.net/oauth/authorize"; string accessUrl = "https://apis.daum.net/oauth/accessToken"; string callbackUrl = "oob"; var consumerContext = new OAuthConsumerContext { //Daum OAuth소개 페이지(http://dna.daum.net/myapi/authapi)에서 등록된 Consumer 정보 입력 ConsumerKey = "[프로필 API용 OAuth 컨슈머 등록한 뒤 발급된 Cosumer키를 입력하세요]", ConsumerSecret = "[프로필 API용 OAuth 컨슈머 등록한 뒤 발급된 Cosumer Secret키를 입력하세요]", SignatureMethod = SignatureMethod.HmacSha1, }; //OAuth 준비 var session = new OAuthSession(consumerContext, requestUrl, userAuthorizeUrl, accessUrl); session.WithQueryParameters(new Dictionary<string,string>(){ { "oauth_callback", callbackUrl } }); // 1. request token 받기 DevDefined.OAuth.Framework.IToken requestToken = session.GetRequestToken(); // 인증주소 받기 string authorizationLink = session.GetUserAuthorizationUrlForToken(requestToken, callbackUrl); // 2. 사용자 인증 하기 System.Console.WriteLine("웹브라우저를 실행하여 다음 URL을 접속하세요."); System.Console.WriteLine(authorizationLink); System.Console.Write("\n\n웹브라우저에서 인증 후 반환 된 값을 입력하세요:"); string inputVerifier = System.Console.ReadLine(); // 얻어진 Verifier값을 포함시키기 session.WithQueryParameters(new Dictionary<string, string>() { { "oauth_verifier", inputVerifier } }); // 3. 인증 후 얻은 Verifier값을 이용하여 엑세스 토큰 얻기 DevDefined.OAuth.Framework.IToken accessToken = session.ExchangeRequestTokenForAccessToken(requestToken); // '프로필 정보보기' API를 통해 인증 확인하기 System.Console.WriteLine("OAuth를 통한 인증으로 '프로필 정보보기'를 테스트합니다."); string responseText = session.Request().Post().ForUrl("https://apis.daum.net/profile/show.xml").ToString(); System.Console.WriteLine(responseText); System.Console.ReadLine(); }
public void GetAccessToken() { string requestUrl = "https://www.yammer.com/oauth/request_token"; string userAuthorizeUrl = "https://www.yammer.com/oauth/authorize"; string accessUrl = "https://www.yammer.com/oauth/access_token"; var context = new OAuthConsumerContext { ConsumerKey = @"YourConsumerKey", ConsumerSecret = @"YourConsumerSecret", SignatureMethod = SignatureMethod.PlainText, UseHeaderForOAuthParameters = true }; var session = new OAuthSession(context, requestUrl, userAuthorizeUrl, accessUrl); var authCode = ""; var requestToken = session.GetRequestToken("POST"); var authLink = session.GetUserAuthorizationUrlForToken(requestToken); var accessToken = session.ExchangeRequestTokenForAccessToken(requestToken, authCode); }
public void GetAccessToken() { string requestUrl = "https://www.yammer.com/oauth/request_token"; string userAuthorizeUrl = "https://www.yammer.com/oauth/authorize"; string accessUrl = "https://www.yammer.com/oauth/access_token"; var context = new OAuthConsumerContext { ConsumerKey = @"ZWZ4FiczbUeQbuDyp1JhDg", ConsumerSecret = @"14HZ8T9YgIuWQtlaFdhtLLBncWx0ZHbuoioNzdSzrA", SignatureMethod = SignatureMethod.PlainText, UseHeaderForOAuthParameters = true }; var session = new OAuthSession(context, requestUrl, userAuthorizeUrl, accessUrl); var authCode = ""; var requestToken = session.GetRequestToken("POST"); var authLink = session.GetUserAuthorizationUrlForToken(requestToken); var accessToken = session.ExchangeRequestTokenForAccessToken(requestToken, authCode); }
protected void Page_Load(object sender, EventArgs e) { if (Request.QueryString.HasKeys()) { var oauthVerifyer = Request.QueryString["oauth_verifier"].ToString(); RestProfile profile = RestProfile.GetRestProfile(); profile.RealmId = Request.QueryString["realmId"].ToString(); switch (Request.QueryString["dataSource"].ToString().ToLower()) { case "qbo": profile.DataSource = (int)IntuitServicesType.QBO; break; case "qbd": profile.DataSource = (int)IntuitServicesType.QBD; break; } OAuthConsumerContext consumerContext = new OAuthConsumerContext { ConsumerKey = ConfigurationManager.AppSettings["consumerKey"].ToString(), ConsumerSecret = ConfigurationManager.AppSettings["consumerSecret"].ToString(), SignatureMethod = SignatureMethod.HmacSha1 }; IOAuthSession clientSession = new OAuthSession(consumerContext, Constants.OauthEndPoints.IdFedOAuthBaseUrl + Constants.OauthEndPoints.UrlRequestToken, Constants.OauthEndPoints.IdFedOAuthBaseUrl, Constants.OauthEndPoints.IdFedOAuthBaseUrl + Constants.OauthEndPoints.UrlAccessToken); try { IToken accessToken = clientSession.ExchangeRequestTokenForAccessToken((IToken)Session["requestToken"], oauthVerifyer); profile.OAuthAccessToken = accessToken.Token; profile.OAuthAccessTokenSecret = accessToken.TokenSecret; profile.Save(); } catch { } } }
OAuthSession BuildSession() { var consumerContext = new OAuthConsumerContext { SignatureMethod = SignatureMethod.HmacSha1, ConsumerKey = ConsumerKey, ConsumerSecret = ConsumerSecret, UseHeaderForOAuthParameters = false }; var session = new OAuthSession(consumerContext, requestTokenUrl: "http://www.khanacademy.org/api/auth/request_token", userAuthorizeUrl: "http://www.khanacademy.org/api/auth/request_token", /* not used by the khanacademy flow - they combine the first and second leg together */ accessTokenUrl: "http://www.khanacademy.org/api/auth/access_token") { CallbackUri = new Uri(GetCallbackUrl()) }; session.AccessToken = lastAccessToken; return session; }
public static string callPlatform(IppRealmOAuthProfile profile, string url) { OAuthConsumerContext consumerContext = new OAuthConsumerContext { ConsumerKey = ConfigurationManager.AppSettings["consumerKey"].ToString(), SignatureMethod = SignatureMethod.HmacSha1, ConsumerSecret = ConfigurationManager.AppSettings["consumerSecret"].ToString() }; OAuthSession oSession = new OAuthSession(consumerContext, Constants.OauthEndPoints.IdFedOAuthBaseUrl + Constants.OauthEndPoints.UrlRequestToken, Constants.OauthEndPoints.AuthorizeUrl, Constants.OauthEndPoints.IdFedOAuthBaseUrl + Constants.OauthEndPoints.UrlAccessToken); oSession.ConsumerContext.UseHeaderForOAuthParameters = true; if (profile.accessToken.Length > 0) { oSession.AccessToken = new TokenBase { Token = profile.accessToken, ConsumerKey = ConfigurationManager.AppSettings["consumerKey"].ToString(), TokenSecret = profile.accessSecret }; IConsumerRequest conReq = oSession.Request(); conReq = conReq.Get(); conReq = conReq.ForUrl(url); try { conReq = conReq.SignWithToken(); return conReq.ReadBody(); } catch (Exception ex) { throw ex; } } return ""; }
private void WhoScoredConsumer() { X509Certificate2 certificate = TestCertificates.OAuthTestCertificate(); string requestUrl = ConfigurationManager.AppSettings["requestUrl"]; string userAuthorizeUrl = ConfigurationManager.AppSettings["userAuthorizeUrl"]; string accessUrl = ConfigurationManager.AppSettings["accessUrl"]; string callBackUrl = ConfigurationManager.AppSettings["callBackUrl"]; var consumerContext = new OAuthConsumerContext { ConsumerKey = ConfigurationManager.AppSettings["consumerKey"], ConsumerSecret = ConfigurationManager.AppSettings["consumerSecret"], SignatureMethod = SignatureMethod.HmacSha1, Key = certificate.PrivateKey }; var session = new OAuthSession(consumerContext, requestUrl, userAuthorizeUrl, accessUrl); // get a request token from the provider //IToken requestToken = session.GetRequestToken(); // generate a user authorize url for this token (which you can use in a redirect from the current site) //string authorizationLink = session.GetUserAuthorizationUrlForToken(requestToken, callBackUrl); const string Verifier = "8yeydIESPsinquIQ"; // exchange a request token for an access token //IToken accessToken = session.ExchangeRequestTokenForAccessToken(requestToken, Verifier); session.AccessToken = new TokenBase(); session.AccessToken.Token = ConfigurationManager.AppSettings["accessTokenKey"]; session.AccessToken.TokenSecret = ConfigurationManager.AppSettings["accessTokenSecret"]; // make a request for a protected resource string matchesArchive = "?file=matchesarchive&version=1.1"; string responseText = session.Request().Get().ForUrl(string.Format("http://chpp.hattrick.org/chppxml.ashx{0}", matchesArchive)).ToString(); }
public string callPlatform(string url) { OAuthConsumerContext consumerContext = new OAuthConsumerContext { ConsumerKey = ConfigurationSettings.AppSettings["consumerKey"], SignatureMethod = SignatureMethod.HmacSha1, ConsumerSecret = ConfigurationSettings.AppSettings["consumerSecret"] }; OAuthSession oSession = new OAuthSession(consumerContext, "http://www.example.com", "http://www.example.com", "http://www.example.com"); oSession.ConsumerContext.UseHeaderForOAuthParameters = true; if (_ippRealmOAuthProfile.accessToken.Length > 0) { oSession.AccessToken = new TokenBase { Token = _ippRealmOAuthProfile.accessToken, ConsumerKey = ConfigurationSettings.AppSettings["consumerKey"], TokenSecret = _ippRealmOAuthProfile.accessSecret }; IConsumerRequest conReq = oSession.Request(); conReq = conReq.Get(); conReq = conReq.ForUrl(url); try { conReq = conReq.SignWithToken(); return conReq.ReadBody(); } catch (Exception ex) { throw ex; } } return ""; }
/// <summary> /// creates oAuth session /// </summary> /// <returns>session</returns> private OAuthSession GetSession() { X509Certificate2 certificate = TestCertificates.OAuthTestCertificate(); string requestUrl = ConfigurationManager.AppSettings["requestUrl"]; string userAuthorizeUrl = ConfigurationManager.AppSettings["userAuthorizeUrl"]; string accessUrl = ConfigurationManager.AppSettings["accessUrl"]; var consumerContext = new OAuthConsumerContext { ConsumerKey = ConfigurationManager.AppSettings["consumerKey"], ConsumerSecret = ConfigurationManager.AppSettings["consumerSecret"], SignatureMethod = SignatureMethod.HmacSha1, Key = certificate.PrivateKey }; var session = new OAuthSession(consumerContext, requestUrl, userAuthorizeUrl, accessUrl); session.AccessToken = new TokenBase(); session.AccessToken.Token = ConfigurationManager.AppSettings["accessTokenKey"]; session.AccessToken.TokenSecret = ConfigurationManager.AppSettings["accessTokenSecret"]; return session; }
static void Main(string[] args) { var consumerContext = new OAuthConsumerContext { SignatureMethod = SignatureMethod.HmacSha1, ConsumerKey = "dai4siwkt27bo3r", // this is just a sample app setup for demo purposes called "DevDefinedOAuthTest", it's a sandbox app in "Development" mode. ConsumerSecret = "emsponeqnebimbm", UseHeaderForOAuthParameters = true // this is required for the PUT request with raw body to succeed. }; var session = new OAuthSession(consumerContext, "https://api.dropbox.com/1/oauth/request_token", "https://www.dropbox.com/1/oauth/authorize", "https://api.dropbox.com/1/oauth/access_token"); IToken requestToken = session.GetRequestToken(); string authorisationUrl = session.GetUserAuthorizationUrlForToken(requestToken); Console.WriteLine("Authorization Url: {0}", authorisationUrl); Process.Start(authorisationUrl); Console.WriteLine(); Console.WriteLine("Press enter once authorization complete"); Console.ReadLine(); session.ExchangeRequestTokenForAccessToken(requestToken); string accountInfo = session.Request().Get().ForUrl("https://api.dropbox.com/1/account/info").ReadBody(); Console.WriteLine("Account info: {0}", accountInfo); Console.WriteLine(); Console.WriteLine("Press enter to continue (will put file into sandbox)"); Console.ReadLine(); Console.WriteLine("Uploading..."); const string root = "sandbox"; // can also be "dropbox" (if app has all folders access) string fileName = "img_" + Guid.NewGuid() + ".png"; string putUrl = string.Format("https://api-content.dropbox.com/1/files_put/{0}/{1}", root, fileName); byte[] contents = File.ReadAllBytes("DevDefinedOAuthTitle.png"); IConsumerRequest putRequest = session.Request().Put().ForUrl(putUrl).WithRawContent(contents); string putInfo = putRequest.ReadBody(); Console.WriteLine("Put response: {0}", putInfo); Console.WriteLine(); Console.WriteLine("Press enter to exit"); Console.ReadLine(); }
public OAuthSession getOAuthSession() { if (qboas == null) { qboas = new OAuthSession(getOAuthConsumerContext(), QB_REQUEST_TOKEN, QB_AUTHORIZE, QB_ACCESS_TOKEN, getCallback()); } return qboas; }
// this performs our main OAuth authentication, performing // the request token retrieval, authorization, and exchange // for an access token public IToken GetAccessToken() { var consumerContext = new OAuthConsumerContext () { ConsumerKey = "anyone" }; var rest_client = new JsonServiceClient (BaseUri); var url = new Rainy.WebService.ApiRequest ().ToUrl("GET"); var api_ref = rest_client.Get<ApiResponse> (url); var session = new OAuthSession (consumerContext, api_ref.OAuthRequestTokenUrl, api_ref.OAuthAuthorizeUrl, api_ref.OAuthAccessTokenUrl); IToken request_token = session.GetRequestToken (); // we dont need a callback url string link = session.GetUserAuthorizationUrlForToken (request_token, "http://example.com/"); // visit the link to perform the authorization (no interaction needed) HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create (link); // disallow auto redirection, since we are interested in the location header only req.AllowAutoRedirect = false; // the oauth_verifier we need, is part of the querystring in the (redirection) // 'Location:' header string location = ((HttpWebResponse)req.GetResponse ()).Headers ["Location"]; var query = string.Join ("", location.Split ('?').Skip (1)); var oauth_data = System.Web.HttpUtility.ParseQueryString (query); IToken access_token = session.ExchangeRequestTokenForAccessToken (request_token, oauth_data ["oauth_verifier"]); return access_token; }