public Task<bool> Delete(RefreshToken refreshToken) { _dbContext.Entry<RefreshToken>(refreshToken).State = EntityState.Deleted; var result = _dbContext.SaveChanges() > 0; return Task.FromResult<bool>(result); }
public Task Create(RefreshToken refreshToken) { var existingToken = _dbContext.RefreshTokens.Where(r => r.Subject == refreshToken.Subject && r.ApiClientId == refreshToken.ApiClientId).SingleOrDefault(); _dbContext.RefreshTokens.Add(refreshToken); if (existingToken != null) { var result = Delete(existingToken); } _dbContext.SaveChanges(); return Task.FromResult(0); }
public async Task<IResponse<bool>> Delete(RefreshToken refreshToken) { var response = new Response<bool>(); try { response.Result = await _store.Delete(refreshToken); } catch (Exception ex) { response.Error = new Error(ex.Message); } return response; }
public async Task CreateAsync(AuthenticationTokenCreateContext context) { var clientid = context.Ticket.Properties.Dictionary["as:client_id"]; if (string.IsNullOrEmpty(clientid)) { return; } var refreshTokenId = Guid.NewGuid().ToString("n"); var refreshTokenLifeTime = context.OwinContext.Get<string>("as:clientRefreshTokenLifeTime"); var token = new RefreshToken() { Id = CryptoHelper.GetHash(refreshTokenId), ApiClientId = clientid, Subject = context.Ticket.Identity.Name, IssuedUtc = DateTime.UtcNow, ExpiresUtc = DateTime.UtcNow.AddMinutes(Convert.ToDouble(refreshTokenLifeTime)) }; context.Ticket.Properties.IssuedUtc = token.IssuedUtc; context.Ticket.Properties.ExpiresUtc = token.ExpiresUtc; token.ProtectedTicket = context.SerializeTicket(); var response = await _manager.Create(token); if (response.IsSuccessful) { context.SetToken(refreshTokenId); } }
public async Task<bool> RemoveRefreshToken(RefreshToken refreshToken) { _ctx.RefreshTokens.Remove(refreshToken); return await _ctx.SaveChangesAsync() > 0; }
public async Task<bool> AddRefreshToken(RefreshToken token) { var existingToken = _ctx.RefreshTokens.Where(r => r.Subject == token.Subject && r.ClientId == token.ClientId).SingleOrDefault(); if (existingToken != null) { var result = await RemoveRefreshToken(existingToken); } _ctx.RefreshTokens.Add(token); return await _ctx.SaveChangesAsync() > 0; }