Exemple #1
0
        public User AuthentificationTest(string userName, string password)
        {
            var loginService     = _container.GetInstance <AuthentificationService>();
            var credentialsDraft = new CredentialsDraft(userName, password);

            return(loginService.Authentificate(credentialsDraft));
        }
Exemple #2
0
        public User Authentificate(CredentialsDraft credentialsDraft)
        {
            var user = _userManager.GetUserByLogin(credentialsDraft.login);

            var password = _passwordHasher.GetHash(credentialsDraft.password);

            if (user != null && user.Credentials.Passwords.Find(p => p.IsActive).Value != password)
            {
                user = null;
            }

            return(user);
        }
        public HttpResponseMessage Login(CredentialsDraft credentialsDraft)
        {
            var user = _autentificationService.Authentificate(credentialsDraft);

            if (user == null)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, "Wrong login or password."));
            }
            else if (user.Email == null)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, "Sorry, you can't login. You didn't confirm your email address."));
            }

            var token = _jwtService.CreateToken(user.UserId);

            var userDTO = new UserDTO()
            {
                Id           = user.UserId,
                FirstName    = user.FirstName,
                LastName     = user.LastName,
                UserName     = user.UserName,
                Email        = user.Email,
                PendingEmail = user.PendingEmail,
                MobilePhone  = user.MobilePhone.Value,
                DateOfBirth  = (int)user.DateOfBirth.Subtract(new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalSeconds,
                Country      = user.Address.Country,
                State        = user.Address.State,
                City         = user.Address.City,
                Zipcode      = user.Address.Zipcode,
                AddressLine  = user.Address.AddressLine,
                Roles        = user.UserRoles.Select(x => x.Name).ToArray()
            };


            var response = Request.CreateResponse(HttpStatusCode.OK, new { user = userDTO, token = token });

            return(response);
        }