/// <summary> /// This action is the callback that Evernote will redirect to after /// the call to Authorize above /// </summary> /// <param name="oauth_verifier"></param> /// <returns></returns> public ActionResult ObtainTokenCredentials(string oauth_verifier) { // Use the verifier to get all the user details we need and // store them in EvernoteCredentials var credentials = EvernoteAuthorizer.ParseAccessToken(oauth_verifier, SessionHelper.RequestToken); if (credentials != null) { SessionHelper.EvernoteCredentials = credentials; return(Redirect(Url.Action("Authorized"))); } else { return(Redirect(Url.Action("Unauthorized"))); } }
// // GET: /Manage/EvernoteCallback public async Task <ActionResult> EvernoteCallback([FromQuery] string oauth_verifier) { EvernoteCallbackViewModel evernoteCallbackViewModel = new EvernoteCallbackViewModel(); if (String.IsNullOrEmpty(oauth_verifier)) { throw new ArgumentNullException(nameof(oauth_verifier), "Problem authenticating Evernote: did not receive OAuth verifier"); } EvernoteAuthorizer evernoteAuthorizer = new EvernoteAuthorizer(_evernoteOptions.URL, _evernoteOptions.SharedKey, _evernoteOptions.SharedSecret); RequestToken requestToken = (RequestToken)JsonConvert.DeserializeObject(HttpContext.Session.GetString("RequestToken"), typeof(RequestToken)); EvernoteCredentials evernoteCredentials = evernoteAuthorizer.ParseAccessToken(oauth_verifier, requestToken); EFDbEvernoteCredentials efdbEvernoteCredentials = new EFDbEvernoteCredentials(evernoteCredentials); var user = await GetCurrentUserAsync(); if (evernoteCredentials == null) { evernoteCallbackViewModel.ErrorMessage = "You did not authorise application"; user.HasAuthorisedEvernote = false; } else { evernoteCallbackViewModel.SuccessMessage = "Evernote successfully authorised, you can now search for notes and start reading"; _dataAccess.UpdateEvernoteCredentials(efdbEvernoteCredentials); user.HasAuthorisedEvernote = true; user.EvernoteCredentials = efdbEvernoteCredentials; user.EvernoteCredentialsId = efdbEvernoteCredentials.Id; } await _userManager.UpdateAsync(user); return(View(evernoteCallbackViewModel)); }