// // GET: /Connect/Callback - Callback url from the api.xero.com authorisation endpoint public ActionResult Callback() { Debug.Write("Processing: /Connect/Callback"); ApiRepository apiRepository = new ApiRepository(); ITokenRepository <AccessToken> accessTokenRepository = new HttpSessionAccessTokenRepository(Session); ITokenRepository <RequestToken> requestTokenRepository = new HttpSessionRequestTokenRepository(Session); string verificationCode = Request.Params["oauth_verifier"]; // Call api.xero.com/oauth/AccessToken IOAuthSession oauthSession = apiRepository.GetOAuthSession(); IToken requestToken = requestTokenRepository.GetToken(""); if (requestToken == null) { throw new ApplicationException("The request token could not be retrived from the current http session. Is session state and cookies enabled?"); } AccessToken accessToken = oauthSession.ExchangeRequestTokenForAccessToken(requestToken, verificationCode); accessTokenRepository.SaveToken(accessToken); GetAndStoreAuthorisedOrganisationName(apiRepository); return(new RedirectResult("~/")); }
// // GET: /Connect/Callback - Callback url from the api.xero.com authorisation endpoint public ActionResult Callback() { Debug.Write("Processing: /Connect/Callback"); ApiRepository apiRepository = new ApiRepository(); ITokenRepository<AccessToken> accessTokenRepository = new HttpSessionAccessTokenRepository(Session); ITokenRepository<RequestToken> requestTokenRepository = new HttpSessionRequestTokenRepository(Session); string verificationCode = Request.Params["oauth_verifier"]; // Call api.xero.com/oauth/AccessToken IOAuthSession oauthSession = apiRepository.GetOAuthSession(); IToken requestToken = requestTokenRepository.GetToken(""); if (requestToken == null) { throw new ApplicationException("The request token could not be retrived from the current http session. Is session state and cookies enabled?"); } AccessToken accessToken = oauthSession.ExchangeRequestTokenForAccessToken(requestToken, verificationCode); accessTokenRepository.SaveToken(accessToken); GetAndStoreAuthorisedOrganisationName(apiRepository); return new RedirectResult("~/"); }
// // GET: /Connect/Index - Main OAuth Connection Endpoint public ActionResult Index() { Debug.Write("Processing: /Connect/Index"); ApiRepository apiRepository = new ApiRepository(); ITokenRepository <AccessToken> accessTokenRepository = new HttpSessionAccessTokenRepository(Session); ITokenRepository <RequestToken> requestTokenRepository = new HttpSessionRequestTokenRepository(Session); // Do we already have a session token in sessionstate? - is it still usable? if (accessTokenRepository.GetToken("") != null) { if (apiRepository.TestConnectionToXeroApi(accessTokenRepository)) { return(new RedirectResult("~/")); } // The current session token+secret doesn't work - probably due to it expiring in 30mins. accessTokenRepository.SaveToken(null); } // Call api.xero.com/oauth/AccessToken IOAuthSession oauthSession = apiRepository.GetOAuthSession(); RequestToken requestToken = oauthSession.GetRequestToken(); requestTokenRepository.SaveToken(requestToken); Trace.WriteLine("OAuth Request Token: " + requestToken.Token); Trace.WriteLine("OAuth Request Secret: " + requestToken.TokenSecret); string authorisationUrl = oauthSession.GetUserAuthorizationUrlForToken(requestToken); Trace.WriteLine("Redirecting browser to user authorisation uri:" + authorisationUrl); return(new RedirectResult(authorisationUrl)); }
// // GET: /Connect/Index - Main OAuth Connection Endpoint public ActionResult Index() { Debug.Write("Processing: /Connect/Index"); ApiRepository apiRepository = new ApiRepository(); ITokenRepository<AccessToken> accessTokenRepository = new HttpSessionAccessTokenRepository(Session); ITokenRepository<RequestToken> requestTokenRepository = new HttpSessionRequestTokenRepository(Session); // Do we already have a session token in sessionstate? - is it still usable? if (accessTokenRepository.GetToken("") != null) { if (apiRepository.TestConnectionToXeroApi(accessTokenRepository)) { return new RedirectResult("~/"); } // The current session token+secret doesn't work - probably due to it expiring in 30mins. accessTokenRepository.SaveToken(null); } // Call api.xero.com/oauth/AccessToken IOAuthSession oauthSession = apiRepository.GetOAuthSession(); RequestToken requestToken = oauthSession.GetRequestToken(); requestTokenRepository.SaveToken(requestToken); Trace.WriteLine("OAuth Request Token: " + requestToken.Token); Trace.WriteLine("OAuth Request Secret: " + requestToken.TokenSecret); string authorisationUrl = oauthSession.GetUserAuthorizationUrlForToken(requestToken); Trace.WriteLine("Redirecting browser to user authorisation uri:" + authorisationUrl); return new RedirectResult(authorisationUrl); }