Example #1
0
        /// <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")));
            }
        }
Example #2
0
        //
        // 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));
        }