示例#1
0
        public async Task <object> Post([FromBody] dynamic model)
        {
            if (model == null)
            {
                throw new ApiArgumentException("model");
            }

            if (model.expires_on == null)
            {
                throw new ApiArgumentException("expires_on");
            }

            string   purpose   = DynamicHelper.Value(model.purpose) ?? string.Empty;
            DateTime?expiresOn = DynamicHelper.Value(model.expires_on) != String.Empty ? DynamicHelper.To <DateTime>(model.expires_on) : null;

            ApiToken token = _keyProvider.GenerateKey(purpose);

            token.Key.ExpiresOn = expiresOn;

            await _keyProvider.SaveKey(token.Key);

            //
            // Create response
            dynamic key = ApiKeyHelper.ToJsonModel(token);

            return(Created(ApiKeyHelper.GetLocation(key.id), key));
        }
        public async Task <IActionResult> Create(string purpose, string expiration)
        {
            long exp = 0; // seconds

            if (!string.IsNullOrWhiteSpace(expiration))
            {
                exp = long.Parse(expiration);

                if (exp < 0)
                {
                    throw new ArgumentOutOfRangeException(nameof(expiration));
                }
            }


            // Create a key
            ApiToken key = _keyProvider.GenerateKey(purpose);

            // Set expiration
            if (exp > 0)
            {
                key.Key.ExpiresOn = DateTime.UtcNow.AddSeconds(exp);
            }

            // Store the key
            await _keyProvider.SaveKey(key.Key);

            return(View("Index", new {
                Keys = await GetAllKeys(),
                NewToken = new {
                    Purpose = purpose,
                    Value = key.Token
                }.ToExpando()
            }.ToExpando()));
        }