public async Task <IActionResult> Callback(string code, string state = null)
        {
            IDeviantArtRefreshToken result = await DeviantArtAuth.GetTokenAsync(_appReg, code, new Uri($"https://{HttpContext.Request.Host}/Home/Callback"));

            var me = await DeviantArtFs.Api.User.AsyncWhoami(result, ObjectExpansion.None).StartAsTask();

            var token = new Token
            {
                Id           = Guid.NewGuid(),
                UserId       = me.userid,
                AccessToken  = result.AccessToken,
                RefreshToken = result.RefreshToken
            };

            _context.Tokens.Add(token);
            await _context.SaveChangesAsync();

            var claimsIdentity = new ClaimsIdentity(
                new[] {
                new Claim(ClaimTypes.Name, me.username),
                new Claim("token-id", token.Id.ToString())
            }, CookieAuthenticationDefaults.AuthenticationScheme);
            await HttpContext.SignInAsync(
                CookieAuthenticationDefaults.AuthenticationScheme,
                new ClaimsPrincipal(claimsIdentity));

            return(RedirectToAction("Index"));
        }
        public async Task UpdateTokenAsync(IDeviantArtRefreshToken value)
        {
            CurrentToken = value;

            var t = await _context.Tokens.FindAsync(_originalToken.Id);

            if (t != null)
            {
                t.AccessToken  = value.AccessToken;
                t.RefreshToken = value.RefreshToken;
                await _context.SaveChangesAsync();
            }
        }
 public async Task UpdateTokenAsync(IDeviantArtRefreshToken value)
 {
     _token.RefreshToken = value.RefreshToken;
     _token.AccessToken  = value.AccessToken;
     await _context.SaveChangesAsync();
 }