Exemple #1
0
        public JsonWebToken Get([FromQuery] string grant_type, [FromQuery] int userId, [FromQuery] int pin, [FromQuery] string refresh_token)
        {
            // Authenticate depending on the grant type.
            UserViewModel user = grant_type == "refresh_token" ? GetUserByToken(refresh_token) : GetUserByCredentials(userId, pin);

            if (user == null)
            {
                throw new UnauthorizedAccessException("No!");
            }

            int ageInMinutes = 20;  // However long you want...

            DateTime expiry = DateTime.UtcNow.AddMinutes(ageInMinutes);

            var token = new JsonWebToken
            {
                access_token = _tokenProvider.CreateToken(user, expiry),
                expires_in   = ageInMinutes * 60
            };

            if (grant_type != "refresh_token")
            {
                token.refresh_token = GenerateRefreshToken(user);
            }

            return(token);
        }
Exemple #2
0
        public JsonWebToken Generate([FromBody] LoginViewModel model)
        {
            int      ageInMinutes = 60;
            DateTime expiry       = DateTime.UtcNow.AddMinutes(ageInMinutes);

            return(_tokenProvider.CreateToken(0
                                              , model.username.IndexOf(":") > -1 ? model.username.Split(':')[0] : model.username
                                              , model.username.IndexOf(":") > -1 ? model.username.Split(':')[1] : model.username
                                              , model.password, expiry));
        }
        public JsonWebToken Get([FromBody] LoginViewModel loginViewModel)
        {
            // Authenticate depending on the grant type.
            UserViewModel user = loginViewModel.grant_type == "refresh_token" ? GetUserByToken(loginViewModel.refresh_token) : GetUserByCredentials(Convert.ToInt32(loginViewModel.username), Convert.ToInt32(loginViewModel.password));

            if (user == null)
            {
                throw new UnauthorizedAccessException("No!");
            }

            int ageInMinutes = 20;      // However long you want...

            DateTime expiry = DateTime.UtcNow.AddMinutes(ageInMinutes);

            var token = new JsonWebToken
            {
                access_token = _tokenProvider.CreateToken(user, expiry),
                expires_in   = ageInMinutes * 60
            };

            if (loginViewModel.grant_type != "refresh_token")
            {
                token.refresh_token = GenerateRefreshToken(user);
            }

            return(token);
        }
Exemple #4
0
        public JsonWebToken ProcessToken(User userLogin)
        {
            List <Rol> Roles;
            var        user = _unitOfWork.IUser.ValidateUser(userLogin.username, userLogin.password);

            Roles = new List <Rol>();
            var listRoles = _unitOfWork.IRolUser.GetList();

            foreach (var element in listRoles)
            {
                if (user.id == element.IdUser)
                {
                    Roles.Add(_unitOfWork.IRol.GetById(element.IdRol));
                }
            }
            user.Roles = Roles;
            if (user == null)
            {
                throw new UnauthorizedAccessException();
            }
            var token = new JsonWebToken
            {
                Access_Token = _tokenProvider.CreateToken(user, DateTime.UtcNow.AddHours(8)),
                Expires_in   = 480  //minutes
            };

            return(token);
        }
Exemple #5
0
        public async Task <IActionResult> Login([FromBody] LoginCredentialsDTO login)
        {
            //await _userService.CreateUser(new Business.Entities.User { Email = "*****@*****.**", Name = "Harshika Gupta", RoleID = 1, UserName = "******", Password = "******" });
            var result = await _userService.AuthenticateUser(login.Email, login.Password);

            if (result.IsSuccessed)
            {
                var user = result.Value;

                var userToken = new UserToken
                {
                    Id       = user.UserID,
                    FullName = user.Name,
                    RoleID   = user.RoleID
                };

                var token = _tokenProvider.CreateToken(userToken);

                if (!token.IsSuccessed)
                {
                    BadRequest(token.GetErrorString());
                }

                return(Ok(new AuthTokenDTO {
                    AuthToken = token.Value.Value, RoleName = Utilities.GetRoleName(user.RoleID), ValidTo = token.Value.ValidTo
                }));
            }
            return(BadRequest("User is not authenticated"));
        }
        public ActionResult Token()
        {
            var email    = Request.Form["email"];
            var password = Request.Form["password"];

            // User validation
            var identity = GetIdentity(email, password);

            if (identity == null)
            {
                var errors = new List <string>()
                {
                    "Invalid username or password."
                };
                return(GetErrorResult(new ErrorResult(errors, false)));
            }

            var response = new
            {
                access_token = _tokenProvider.CreateToken(identity.Claims),
                email        = identity.Name
            };

            Response.ContentType = "application/json";
            return(Json(response, new JsonSerializerSettings {
                Formatting = Formatting.Indented
            }));
        }
        public JsonWebToken Post(LoginModel loginModel)
        {
            // Authenticate depending on the grant type.
            User user = loginModel.grant_type == "refresh_token" ? GetUserByToken(loginModel.refresh_token) : GetUserByCredentials(loginModel.client_id, loginModel.client_secret);

            if (user == null)
            {
                throw new UnauthorizedAccessException("No!");
            }

            int ageInMinutes = 20;  // However long you want...

            DateTime expiry = DateTime.UtcNow.AddMinutes(ageInMinutes);

            var token = new JsonWebToken
            {
                access_token = _tokenProvider.CreateToken(user, expiry),
                expires_in   = ageInMinutes * 60
            };

            if (loginModel.grant_type != "refresh_token")
            {
                token.refresh_token = GenerateRefreshToken(user);
            }

            return(token);
        }
 private TTokenEntity CreateToken <TTokenEntity>() where TTokenEntity : ITokenEntity, new()
 {
     return(new TTokenEntity
     {
         Token = _tokenProvider.CreateToken()
     });
 }
Exemple #9
0
 private AuthResponse GetAuthResponse(User user, SessionRefreshToken refreshToken)
 {
     return(new AuthResponse()
     {
         Login = user.Login,
         AccessToken = _tokenProvider.CreateToken(user),
         Expires = _tokenProvider.TokenExpires,
         RefreshToken = refreshToken.Token
     });
 }
Exemple #10
0
 public Token GetToken(ITokenProvider provider)
 {
     return(new Token
     {
         AccessToken = new JwtSecurityTokenHandler().WriteToken(provider.CreateToken(MailAddress, Id.ToString(), "Audience")),
         RefreshToken = new JwtSecurityTokenHandler().WriteToken(provider.CreateRefreshToken(MailAddress, Id.ToString(), "Audience")),
         ExpireDate = provider.ExpireDate,
         Type = "bearer"
     });
 }
        public IActionResult Generate(string userName, string password)
        {
            var token = _tokenProvider.CreateToken(userName, password);

            if (token.access_token is null)
            {
                return(BadRequest("Credentials are invalid!."));
            }
            return(Ok(token));
        }
        public async Task Register_WhenCalled_ProperUserToAddExpected()
        {
            // ARRANGE
            var userForRegister = new UserForRegisterDto
            {
                Username = "******", Email = "*****@*****.**", Password = "******"
            };

            (string password, ComputedPassword computedPassword)password = (userForRegister.Password,
                                                                            ComputedPassword.Create(Encoding.ASCII.GetBytes("password hash"), Encoding.ASCII.GetBytes("password salt")));
            SetPasswordProvider(password);
            var newActivationToken = new AccountActivationToken {
                Token = "The token"
            };
            User userToAdd = null;

            _userRepository.When(x => x.AddAsync(Arg.Any <User>())).Do(x => { userToAdd = x.ArgAt <User>(0); });
            _tokenProvider.CreateToken().Returns(newActivationToken.Token);
            _accountActivationTokenRepository.SingleOrDefaultAsync(Arg.Any <Expression <Func <AccountActivationToken, bool> > >())
            .Returns((AccountActivationToken)null);
            var pendingUploadPhotosFolderName = Guid.NewGuid();

            SystemGuid.Set(() => pendingUploadPhotosFolderName);
            var expected = new User
            {
                Username        = userForRegister.Username,
                Email           = userForRegister.Email,
                ActivationToken = new AccountActivationToken {
                    Token = newActivationToken.Token
                },
                IsAccountActivated            = false,
                PendingUploadPhotosFolderName = pendingUploadPhotosFolderName.ToString("N"),
                PasswordHash = password.computedPassword.Hash,
                PasswordSalt = password.computedPassword.Salt
            };

            // ACT
            await _sut.Register(userForRegister);

            // ASSERT
            userToAdd.Should().BeEquivalentTo(expected);
            await _unitOfWork.Received().CompleteAsync();
        }
Exemple #13
0
        private CommonEntities.Result <IAuthToken> CreateToken(TokenInfo tokenBuilderInput, bool isToken)
        {
            var token = _tokenProvider.CreateToken(tokenBuilderInput, isToken);

            if (!token.IsSuccessed)
            {
                return(CommonEntities.Result.Fail <IAuthToken>(token.GetErrorString()));
            }

            return(token);
        }
        public async Task <ActionResult <JwtToken> > Authorize([FromBody] LoginVm loginVm)
        {
            var user = await _authenticationService.Authenticate(loginVm.Username, loginVm.Password);

            var rememberMe  = loginVm.RememberMe;
            var jwt         = _tokenProvider.CreateToken(user, rememberMe);
            var httpHeaders = new HeaderDictionary {
                [JwtConstants.AuthorizationHeader] = $"{JwtConstants.BearerPrefix} {jwt}"
            };

            return(Ok(new JwtToken(jwt)).WithHeaders(httpHeaders));
        }
Exemple #15
0
        // TODO: Consider whether client credentials is necessary

        /* POST https://api.authorization-server.com/token
         *  grant_type=client_credentials&
         *  client_id=CLIENT_ID&
         *  client_secret=CLIENT_SECRET */
        //public async Task<IActionResult> Post(ClientCredentialTokenRequest request)
        //{
        //    // TODO: get application by client id
        //    ConnectionModel connection = new ConnectionModel();

        //    return Token(connection);
        //}

        public JsonResult Token(Connection connection)
        {
            DateTime expiry = DateTime.UtcNow.AddDays(7);

            JsonWebToken token = new JsonWebToken
            {
                access_token = _tokenProvider.CreateToken(connection, expiry),
                expires_in   = 60 * 60 * 24 * 7
            };

            return(new JsonResult(token));
        }
        private object LoginUser(UserInfoDto user)
        {
            var claims = new List <Claim>()
            {
                new Claim(ClaimTypes.NameIdentifier, user.Id.ToString())
            };

            claims.AddRange(user.Roles.Select(x => new Claim(ClaimTypes.Role, x)));

            var identity = new ClaimsIdentity(claims, JwtBearerDefaults.AuthenticationScheme);

            string token = _tokenProvider.CreateToken(identity);

            return(new { id = user.Id, access_token = token });
        }
        public IActionResult CreateToken([FromBody] User userLogin)
        {
            var user = _unitOfWork.User.ValidateUser(userLogin.NickName, userLogin.Password);

            if (user == null)
            {
                return(Unauthorized(new UnauthorizedAccessException("Wrong Nickname or password, check the credential values")));
            }

            return(Ok(new JsonWebToken
            {
                Access_Token = _tokenProvider.CreateToken(user, DateTime.UtcNow.AddHours(8)),
                Expires_in = 480 //life time of the token on minutes
            }));
        }
Exemple #18
0
        public JsonWebToken Post([FromBody] Users userLogin)
        {
            var user = _unitOfWork.User.ValidateUser(userLogin.Email, userLogin.Password);

            if (user == null)
            {
                return(null);
            }
            var token = new JsonWebToken {
                AccessToken = _tokenProvider.CreateToken(user, DateTime.UtcNow.AddHours(1)),
                ExpiresIn   = 60
            };

            return(token);
        }
      public JsonWebToken Post([FromBody] User userLogin)
      {
          var user = _logic.validateUser(userLogin.Email, userLogin.Password);

          if (user == null)
          {
              throw new UnauthorizedAccessException();
          }
          var token = new JsonWebToken
          {
              Access_token = _tokenProvider.CreateToken(user, DateTime.UtcNow.AddHours(8)),
              Expires_in   = 480//minutos
          };

          return(token);
      }
Exemple #20
0
        public JsonWebToken Post([FromBody] User userLogin)
        {
            var user = _unitOfWork.User.ValidateUser(userLogin.Email, userLogin.Password);

            if (user == null)
            {
                throw new UnauthorizedAccessException();
            }

            var token = new JsonWebToken {
                AccessToken = _tokenProvider.CreateToken(user, DateTime.Now.AddHours(4)),
                ExpiresIn   = 240 //minutes
            };

            return(token);
        }
        public IActionResult Post(TerceroUsuarioRequest usuarioRequest)
        {
            var user = new TerceroUsuarioValidarService(this._unitOfWork).
                       ValidarTerceroUsuario(usuarioRequest);

            if (user == null)
            {
                return(Unauthorized("El usuario y la contraseña " +
                                    "no fueron reconocidos"));
            }
            return(Ok(new JsonWebToken
            {
                AccessToken = _tokenProvider.CreateToken(user, DateTime.UtcNow.AddHours(8)),
                ExpiresIn = 480
            }));
        }
        public JsonWebToken Post([FromBody] User userLogin)
        {
            var user = _unitOfWork.User.ValidateUser(userLogin.Email, userLogin.Password);

            if (user == null)
            {
                throw new UnauthorizedAccessException();
            }

            var token = new JsonWebToken
            {
                Access_Token = _tokenProvider.CreateToken(user, DateTime.UtcNow.AddHours(8)), //Create the Token and it will expire in 8 hours
                Expires_in   = 480                                                            // 8 hours express in minutes
            };

            return(token);
        }
        public JSonWebToken Post([FromBody] User UserLogin)
        {
            var user = _unitOfWork.User.ValidateUser(UserLogin.Email, UserLogin.Password);

            if (user == null)
            {
                throw new UnauthorizedAccessException();
            }

            var token = new JSonWebToken
            {
                Access_Token = _tokenProvider.CreateToken(user, DateTime.UtcNow.AddMinutes(30)),
                Expires_in   = 30
            };

            return(token);
        }
Exemple #24
0
        public IActionResult Authenticate([FromBody] UserLoginModel userParam)
        {
            var cmd  = Request.ToCommand(userParam, true);
            var user = _userService.Authenticate(cmd);


            if (user == null)
            {
                _logger.Warn("Invalid login attempt for user: "******"Username or password is incorrect" }));
            }

            user.Token = _tokenProvider.CreateToken(user, _appSettings.JWTSecret);
            _logger.Info("Logged in user: " + userParam.Username);

            return(Ok(user));
        }
        public JsonWebToken Post(UserLogin login)
        {
            var user = _work.RepositoryUser.ValidateUser(login.Email, login.Password);

            if (user == null)
            {
                throw new UnauthorizedAccessException();
            }

            var token = new JsonWebToken
            {
                Access_Token = _tokenProvider.CreateToken(user, DateTime.UtcNow.AddHours(8)),
                Expires_in   = 480
            };

            return(token);
        }
        public JsonWebToken Post([FromBody] Ah_Usuarios userLogin)
        {
            var user = _unitOfWork.Ah_Usuarios.uspValidateUser(userLogin.UserName, userLogin.Password);

            if (user == null || user.IdUsuario == "")
            {
                throw new UnauthorizedAccessException();
            }

            var token = new JsonWebToken
            {
                Access_Token = _tokenProvider.CreateToken(user, DateTime.UtcNow.AddHours(3)),
                Expires_in   = 180 //minutes
            };

            return(token);
        }
Exemple #27
0
 public IActionResult Post([FromBody] SystemUser userLogin)
 {
     try
     {
         SystemUser user = null;
         if (userLogin.External)
         {
             ExternalUser externalUser = _unitOfWork.ExternalUser.ValidateUserPassword(userLogin.Login, userLogin.Password);
             if (externalUser != null)
             {
                 user = new SystemUser
                 {
                     Id        = externalUser.Id,
                     FirstName = externalUser.FirstName,
                     LastName  = externalUser.LastName,
                     FullName  = externalUser.FirstName + " " + externalUser.LastName,
                     Roles     = "external"
                 };
             }
         }
         else
         {
             user = _unitOfWork.User.ValidateUserPassword(userLogin.Login, userLogin.Password);
         }
         if (user == null)
         {
             return(StatusCode(500, "Los datos de usuario y contraseña no concuerdan"));
         }
         if (!userLogin.External)
         {
             string detail = string.Format("Login correcto usuario: {0}", user.FirstName + " " + user.LastName);
             Audit.InsertAudit(_unitOfWork, "F", user.Id, "I", detail);
         }
         return(Ok(new JsonWebToken
         {
             Access_Token = _tokenProvider.CreateToken(user, DateTime.UtcNow.AddHours(8)),
             Expires_in = 480 //minutes
         }));
     }
     catch (Exception ex)
     {
         //throw new Exception(ex.Message);
         return(StatusCode(500, "Internal server error: " + ex.Message));
     }
 }
        public JsonWebToken Post([FromBody] Usuario user)
        {
            ResultadoModel <Usuario, JsonWebToken> model = new ResultadoModel <Usuario, JsonWebToken>();

            user = _logic.ValidarUsuario(user.Identificacion, user.Contrasena);

            if (user == null)
            {
                throw new UnauthorizedAccessException();
            }
            var token = new JsonWebToken
            {
                Access_Token = _tokenProvider.CreateToken(user, DateTime.UtcNow.AddHours(8)),
                Expires_in   = 480//minutes
            };

            return(token);
        }
        public JsonWebToken Post(User userLogin)
        {
            // obtener el usuario de BD
            var user = _unit.Users.ValidaterUser(userLogin.Email, userLogin.Password);

            if (user == null)
            {
                throw new UnauthorizedAccessException("Usuario no autorizado");
            }
            // el usuario es válido, entonces generamos el token
            var token = new JsonWebToken
            {
                Access_Token = _tokenProvider.CreateToken(userLogin, DateTime.UtcNow.AddHours(8)),
                Expires_In   = 8 * 3600
            };

            return(token);
        }
        public JsonWebToken Post([FromBody] Login userLogin)
        {
            var user = VerificarPassword(userLogin.Email, userLogin.Password);

            //var user = _unitOfWork.Cliente.ValidarCliente(userLogin.Email, password);
            if (user == null)
            {
                throw new UnauthorizedAccessException();
            }

            var token = new JsonWebToken
            {
                AccessToken = _tokenProvider.CreateToken(user, DateTime.UtcNow.AddHours(8)),
                Expires_in  = 480
            };

            return(token);
        }