Пример #1
0
        public async Task <IActionResult> Login([FromBody] CredentialsViewModel credentials)
        {
            List <object> Errors = CredentialsViewModel.ValidateCredentials(credentials);

            if (Errors.Count > 0)
            {
                return(BadRequest(Errors));
            }

            UserModel userModel = null;
            User      user      = null;
            var       identity  = await GetClaimsIdentity(credentials.Email, credentials.Password);

            if (identity is null)
            {
                userModel = db.Users.Where(x => x.UserName == credentials.Email).FirstOrDefault();
                if (userModel is null)
                {
                    Errors.Add(Message.GetMessage("El compte d'usuari introduit és incorrecte"));
                }
                else
                {
                    Errors.Add(Message.GetMessage("La contrasenya introduida no és correcte"));
                }
                return(BadRequest(Errors));
            }
            userModel = db.Users.Where(x => x.UserName == credentials.Email).FirstOrDefault();
            user      = db.DbUsers.Where(x => x.IdentityId == userModel.Id).FirstOrDefault();
            string user_id = "";

            if (user != null)
            {
                user_id = user.Id.ToString();
            }

            var jwt = await Tokens.GenerateJwt(user_id, identity, jwtFactory, credentials.Email, jwtOptions, jsonSerializerSettings);

            return(new OkObjectResult(jwt));
        }