Пример #1
0
        public async Task <IActionResult> Generate(GenerateAddressModel model)
        {
            var app = await _coreApiService.ValidateAccessTokenAsync(model.AccessToken);

            var appLocal = await _dbContext.Apps.SingleOrDefaultAsync(t => t.AppId == app.AppId);

            var file = await _dbContext.OSSFile.Include(t => t.BelongingBucket).SingleOrDefaultAsync(t => t.FileKey == model.Id);

            if (file == null || file.BelongingBucket.BelongingAppId != appLocal.AppId)
            {
                return(NotFound());
            }
            // Generate secret
            var newSecret = new Secret
            {
                Value  = StringOperation.RandomString(15),
                FileId = file.FileKey
            };

            _dbContext.Secrets.Add(newSecret);
            await _dbContext.SaveChangesAsync();

            return(Json(new AiurValue <string>(newSecret.Value)
            {
                Code = ErrorType.Success,
                Message = "Successfully created your onetime secret!"
            }));
        }
Пример #2
0
        public async Task <IActionResult> Generate(GenerateAddressModel model)
        {
            var appid = _tokenManager.ValidateAccessToken(model.AccessToken);
            var file  = await _dbContext
                        .OSSFile
                        .Include(t => t.BelongingBucket)
                        .Where(t => t.BelongingBucket.BelongingAppId == appid)
                        .SingleOrDefaultAsync(t => t.FileKey == model.Id);

            if (file == null)
            {
                return(this.Protocol(ErrorType.NotFound, "Could not get your file in your apps' buckets. The file may be out dated!"));
            }
            // Generate secret
            var newSecret = new Secret
            {
                Value      = Guid.NewGuid().ToString("N"),
                FileId     = file.FileKey,
                MaxUseTime = model.MaxUseTimes
            };

            _dbContext.Secrets.Add(newSecret);
            await _dbContext.SaveChangesAsync();

            return(Json(new AiurValue <string>(newSecret.Value)
            {
                Code = ErrorType.Success,
                Message = "Successfully created your onetime secret!"
            }));
        }