Ejemplo n.º 1
0
        public async Task <IActionResult> AccessToken(AccessTokenAddressModel model)
        {
            var AppValidateState = await APIService.IsValidAppAsync(model.AppId, model.AppSecret);

            if (AppValidateState.code != ErrorType.Success)
            {
                return(Json(AppValidateState));
            }
            var newAC = new AccessToken
            {
                ApplyAppId = model.AppId,
                Value      = (DateTime.Now.ToString() + HttpContext.GetHashCode().ToString() + model.AppId).GetMD5()
            };

            _dbContext.AccessToken.Add(newAC);
            await _dbContext.SaveChangesAsync();

            return(Json(new AccessTokenViewModel
            {
                code = ErrorType.Success,
                message = "Successfully get access token",
                AccessToken = newAC.Value,
                DeadTime = newAC.CreateTime + newAC.AliveTime
            }));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> AccessToken(AccessTokenAddressModel model)
        {
            var app = await _dbContext.Apps.SingleOrDefaultAsync(t => t.Id == model.AppId && t.Secret == model.AppSecret);

            if (app == null)
            {
                return(this.Protocol(ErrorType.Unauthorized, "Wrong app id or app secret!"));
            }
            var newAC = new AccessToken
            {
                ApplyAppId = model.AppId,
                Value      = (DateTime.Now.ToString() + HttpContext.GetHashCode().ToString() + model.AppId).GetMD5()
            };

            _dbContext.AccessTokens.Add(newAC);
            await _dbContext.SaveChangesAsync();

            return(this.Protocol(new AccessTokenViewModel
            {
                Code = ErrorType.Success,
                Message = "Successfully get access token.",
                AccessToken = newAC.Value,
                DeadTime = newAC.CreateTime + newAC.AliveTime
            }));
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> AccessToken(AccessTokenAddressModel model)
        {
            var correctApp = await _developerApiService.IsValidAppAsync(model.AppId, model.AppSecret);

            if (correctApp)
            {
                var token = _tokenManager.GenerateAccessToken(model.AppId);
                return(Ok(new AccessTokenViewModel
                {
                    Code = ErrorType.Success,
                    Message = "Successfully get access token.",
                    AccessToken = token.tokenString,
                    DeadTime = token.expireTime
                }));
            }
            else
            {
                return(this.Protocol(ErrorType.WrongKey, "Wrong app info."));
            }
        }
Ejemplo n.º 4
0
        public async Task <IActionResult> AccessToken(AccessTokenAddressModel model)
        {
            try
            {
                await _developerApiService.IsValidAppAsync(model.AppId, model.AppSecret);
            }
            catch (AiurUnexceptedResponse e)
            {
                return(Json(e.Response));
            }
            var token = _tokenManager.GenerateAccessToken(model.AppId);

            return(Json(new AccessTokenViewModel
            {
                Code = ErrorType.Success,
                Message = "Successfully get access token.",
                AccessToken = token.Item1,
                DeadTime = token.Item2
            }));
        }
Ejemplo n.º 5
0
        public async Task <IActionResult> AccessToken(AccessTokenAddressModel model)
        {
            var cacheKey   = $"Id-{model.AppId}-Secret-{model.AppSecret}";
            var correctApp = await _cache.GetAndCache(cacheKey, () => _developerApiService.IsValidAppAsync(model.AppId, model.AppSecret));

            if (correctApp)
            {
                var token = _tokenManager.GenerateAccessToken(model.AppId);
                return(Json(new AccessTokenViewModel
                {
                    Code = ErrorType.Success,
                    Message = "Successfully get access token.",
                    AccessToken = token.Item1,
                    DeadTime = token.Item2
                }));
            }
            else
            {
                return(this.Protocol(ErrorType.WrongKey, "Wrong app info."));
            }
        }