示例#1
0
        public async Task ValidateAsync(ExtensionGrantValidationContext context)
        {
            var phone = context.Request.Raw["phone"];
            var code  = context.Request.Raw["auth_code"];
            var errorVadationRequest = new GrantValidationResult(TokenRequestErrors.InvalidClient);

            if (string.IsNullOrWhiteSpace(phone) || string.IsNullOrWhiteSpace(code))
            {
                context.Result = errorVadationRequest;
                return;
            }

            if (!_authService.Validate(phone, code))
            {
                context.Result = errorVadationRequest;
                return;
            }

            var userId = await _userServise.CheckOrCreate(phone);

            if (userId <= 0)
            {
                context.Result = errorVadationRequest;
                return;
            }
            context.Result = new GrantValidationResult(userId.ToString(), GrantType);
        }