コード例 #1
0
        public async Task <UserOutDTO> EmailLogin(string email, string password)
        {
            EmailLoginDTO requestObject = new EmailLoginDTO
            {
                email    = email,
                password = password
            };

            var stringPayload = JsonConvert.SerializeObject(requestObject);
            var httpContent   = new StringContent(stringPayload, System.Text.Encoding.UTF8, jsonMediaType);

            var response = await httpClient.PostAsync("api/auth/email-login", httpContent);

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

            try
            {
                UserOutDTO objectResponse = JsonConvert.DeserializeObject <UserOutDTO>(responseContent);
                return(objectResponse);
            }
            catch (System.Exception)
            {
                return(null);
            }
        }
コード例 #2
0
        /// <summary>
        /// 邮箱登录获取token
        /// </summary>
        /// <param name="emailLoginDTO"></param>
        /// <returns></returns>
        public TResultModel <TokenDTO> Login(EmailLoginDTO emailLoginDTO)
        {
            var md5Password = Md5Helper.GenerateMD5(emailLoginDTO.Password);
            var member      = _memberRepository.GetByEmail(emailLoginDTO.Email);

            if (member == null || md5Password != member.Password)
            {
                return(new TResultModel <TokenDTO>(-1, "用户名或密码错误"));
            }
            else
            {
                var jwtStr = JwtHelper.BuildJwtToken(new Claim[3] {
                    new Claim(ClaimTypes.Role, "Admin"),
                    new Claim("Name", member.NickName),
                    new Claim("Id", member.Id.ToString())
                }, _permissionRequirement);
                return(new TResultModel <TokenDTO>(1, "success")
                {
                    TModel = new TokenDTO()
                    {
                        Token = jwtStr
                    }
                });
            }
        }
コード例 #3
0
        public async Task <IActionResult> EmailLogin([FromBody] EmailLoginDTO userIn)
        {
            UserOut result = await authRepo.EmailLogin(userIn.email, userIn.password);

            if (!result.success)
            {
                return(BadRequest(result));
            }
            string token = JWTHelper.GenerateToken(result.email, result.username, secretKey, EXPIRE_TIME);

            Response.Cookies.Append(JWT_COOKIE_NAME, token, new Microsoft.AspNetCore.Http.CookieOptions
            {
                HttpOnly = true
            });
            return(Ok(result));
        }
コード例 #4
0
        public async Task <IActionResult> EmailLogin([FromBody] EmailLoginDTO userIn)
        {
            InternalUser result = await authRepo.EmailLogin(userIn.email, userIn.password);

            if (!result.success)
            {
                return(BadRequest(result));
            }
            string token = JWTHelper.GenerateToken(result.email, result.username, SECRET_KEY, EXPIRE_TIME);

            return(Ok(new UserOutDTO
            {
                Username = result.username,
                Email = result.email,
                JwtToken = token,
                success = true
            }));
        }