示例#1
0
        public Task<bool> Delete(RefreshToken refreshToken)
        {
            _dbContext.Entry<RefreshToken>(refreshToken).State = EntityState.Deleted;

            var result = _dbContext.SaveChanges() > 0;

            return Task.FromResult<bool>(result);
        }
示例#2
0
        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);
        }
示例#3
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;
        }
示例#4
0
        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);
            }

        }
示例#5
0
 public async Task<bool> RemoveRefreshToken(RefreshToken refreshToken)
 {
     _ctx.RefreshTokens.Remove(refreshToken);
     return await _ctx.SaveChangesAsync() > 0;
 }
示例#6
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;
            }