コード例 #1
0
        /// <summary>
        /// 获取Token
        /// </summary>
        /// <returns></returns>
        public static async Task <ApiTokenResult> GetAccessToken(string token, int getnewtoken = 0)
        {
            ApiTokenResult accessTokenResult = null;
            var            url     = JobConfig.AppSettings["ApiTokenUrl"];
            var            handler = new HttpClientHandler()
            {
                AutomaticDecompression = System.Net.DecompressionMethods.None
            };

            using (HttpClient httpclient = new HttpClient(handler))
            {
                httpclient.BaseAddress = new Uri(url);
                var content = new FormUrlEncodedContent(new Dictionary <string, string>()
                {
                    { "token", token }, { "getnewtoken", getnewtoken.ToString() }
                });

                var response = await httpclient.PostAsync(url, content);

                string responseString = await response.Content.ReadAsStringAsync();

                var result = JsonConvert.DeserializeObject <AbpResultModel>(responseString);
                accessTokenResult = result.result;
            }
            return(accessTokenResult);
        }
コード例 #2
0
        public async Task <ApiTokenResult> MobileLogin(MobileValidationCodeLoginInput input)
        {
            var returnResult = new ApiTokenResult();
            var verifyMobileValidationCodeInput = new VerifyMobileValidationCodeInput
            {
                Mobile         = input.Mobile,
                Type           = MobileValidationCodeType.Login, // 登录
                ValidationCode = input.ValidationCode,
            };

            if (!await _mobileUserService.VerifyMobileValidationCodeAsync(verifyMobileValidationCodeInput, ModelState))
            {
                returnResult.Code    = 400;
                returnResult.Message = ModelState.FirstErrorMessage();
                return(returnResult);
            }
            var userInfo = await _mobileUserService.GetOrGenerateItemByMobileAsync(_authenticationSettings.RegisterDefaultGroupId,
                                                                                   _authenticationSettings.RegisterDefaultStatus,
                                                                                   input.Mobile,
                                                                                   true,
                                                                                   ModelState);

            if (userInfo == null)
            {
                returnResult.Code    = 400;
                returnResult.Message = ModelState.FirstErrorMessage();
                return(returnResult);
            }

            if (userInfo.Status != UserStatus.Normal)
            {
                returnResult.Code    = 201;
                returnResult.Message = "注册成功,请等待审核。";
                return(returnResult);
            }

            var token        = _tokenService.GenerateAccessToken(userInfo);
            var refreshToken = await _tokenService.GenerateRefreshToken(userInfo.UserId);

            returnResult.Token        = token;
            returnResult.RefreshToken = refreshToken;
            returnResult.Code         = 200;
            returnResult.Message      = "登录成功";
            return(returnResult);
        }
コード例 #3
0
        public async Task <ApiResult> MobilePasswordLogin(MobilePasswordLoginInput input)
        {
            var returnResult = new ApiTokenResult();
            var userInfo     = await _userService.GetNormalUserAsync(input.Mobile, input.Password);

            if (userInfo == null)
            {
                returnResult.Code    = 400;
                returnResult.Message = "手机号或密码错误,请重试。";
                return(returnResult);
            }

            var jwt = GetJwt(userInfo);

            returnResult.Token   = jwt;
            returnResult.Code    = 200;
            returnResult.Message = "登录成功";
            return(returnResult);
        }
コード例 #4
0
        public async Task <ApiResult> MobilePassswordRegister(MobilePassswordValidationCodeRegisterInput input)
        {
            var returnResult = new ApiTokenResult();
            var verifyMobileValidationCodeInput = new VerifyMobileValidationCodeInput
            {
                Mobile         = input.Mobile,
                Type           = MobileValidationCodeType.Register, // 注册
                ValidationCode = input.ValidationCode,
            };

            if (!await _mobileUserService.VerifyMobileValidationCodeAsync(verifyMobileValidationCodeInput, ModelState))
            {
                returnResult.Code    = 400;
                returnResult.Message = ModelState.FirstErrorMessage();
                return(returnResult);
            }
            await _mobileUserService.FinishVerifyMobileValidationCodeAsync(verifyMobileValidationCodeInput.Mobile, verifyMobileValidationCodeInput.Type, ModelState);

            var userInfo = await _mobileUserService.GenerateItemAsync(_authenticationSettings.RegisterDefaultGroupId, _authenticationSettings.RegisterDefaultStatus, input, ModelState);

            if (userInfo == null)
            {
                returnResult.Code    = 400;
                returnResult.Message = ModelState.FirstErrorMessage();
                return(returnResult);
            }

            if (userInfo.Status != UserStatus.Normal)
            {
                returnResult.Code    = 201;
                returnResult.Message = "注册成功,请等待审核。";
                return(returnResult);
            }

            var jwt = GetJwt(userInfo);

            returnResult.Token   = jwt;
            returnResult.Code    = 200;
            returnResult.Message = "注册成功";
            return(returnResult);
        }
コード例 #5
0
        public async Task <ApiTokenResult> Login(AccountPasswordLoginInput input)
        {
            var result   = new ApiTokenResult();
            var userInfo = await _userService.GetNormalUserAsync(input.Account, input.Password);

            if (userInfo == null)
            {
                result.Code    = 400;
                result.Message = "账号或密码错误,或用户状态不允许登录";
                return(result);
            }

            var token        = _tokenService.GenerateAccessToken(userInfo);
            var refreshToken = await _tokenService.GenerateRefreshToken(userInfo.UserId);

            result.Token        = token;
            result.RefreshToken = refreshToken;
            result.Code         = 200;
            result.Message      = "登录成功";
            return(result);
        }
コード例 #6
0
        public async Task <ActionResult <ApiTokenResult> > Login([FromBody] AccountPasswordValidationCodeLoginInput input)
        {
            var result         = new ApiTokenResult();
            var validationCode = HttpContext.Session.GetString(ValidationCodeKey);

            if (validationCode == null)
            {
                result.Code    = 400;
                result.Message = "验证码已到期,请重新输入";
                return(result);
            }

            if (String.Compare(validationCode, input.ValidationCode, StringComparison.OrdinalIgnoreCase) != 0)
            {
                result.Code    = 400;
                result.Message = "请输入正确的验证码";
                return(result);
            }

            HttpContext.Session.Remove(ValidationCodeKey);

            var user = await _userService.GetNormalUserAsync(input.Account, input.Password);

            if (user == null)
            {
                result.Code    = 400;
                result.Message = "账号或密码错误,或用户状态不允许登录";
                return(result);
            }

            var jwt = GetJwt(user);

            result.Token   = jwt;
            result.Url     = _frontendSettings.CoreEnvironment.IsDevelopment ? _frontendSettings.CoreEnvironment.DevelopmentHost + "/modules/index.html" : Url.Action("Index", "View");
            result.Code    = 200;
            result.Message = "登录成功";
            return(result);
        }
コード例 #7
0
        public async Task <ApiTokenResult> WeixinWebLogin(WeixinWebLoginInput input)
        {
            var returnResult = new ApiTokenResult();
            var openId       = await _weixinUserService.GetWeixinWebOpenIdAsync(input.Code);

            if (openId == null)
            {
                returnResult.Code    = 400;
                returnResult.Message = "异常:获取微信 OpenId 失败";
                return(returnResult);
            }
            var userInfo = await _weixinUserService.GetOrGenerateItemByWeixinWebOpenIdAsync(_authenticationSettings.RegisterDefaultGroupId,
                                                                                            _authenticationSettings.RegisterDefaultStatus,
                                                                                            openId);

            if (userInfo == null)
            {
                returnResult.Code    = 400;
                returnResult.Message = "异常:微信小程序登录失败";
                return(returnResult);
            }

            if (userInfo.Status != UserStatus.Normal)
            {
                returnResult.Code    = 201;
                returnResult.Message = "注册成功,请等待审核。";
                return(returnResult);
            }

            var token        = _tokenService.GenerateAccessToken(userInfo);
            var refreshToken = await _tokenService.GenerateRefreshToken(userInfo.UserId);

            returnResult.Token        = token;
            returnResult.RefreshToken = refreshToken;
            returnResult.Code         = 200;
            returnResult.Message      = "登录成功";
            return(returnResult);
        }
コード例 #8
0
        public async Task <ApiResult> BindWeixinMobileEnd(WeixinMobileEndLoginInput input)
        {
            var returnResult = new ApiTokenResult();
            var openId       = await _weixinUserService.GetWeixinAppOpenIdAsync(input.Code);

            if (openId == null)
            {
                returnResult.Code    = 400;
                returnResult.Message = "异常:获取微信 OpenId 失败";
                return(returnResult);
            }
            var bindResult = await _weixinUserService.UpdateWeixinMobileEndOpenIdAsync(HttpContext.User.GetUserId(), openId, ModelState);

            if (!bindResult)
            {
                returnResult.Code    = 400;
                returnResult.Message = ModelState.FirstErrorMessage();
                return(returnResult);
            }

            returnResult.Code    = 200;
            returnResult.Message = "绑定成功";
            return(returnResult);
        }