Пример #1
0
        public async Task <ActionResult> LoginAsync(Login login)
        {
            var user = await _service.FindUser(login);

            bool isValidLogin = false;

            if (user != null)
            {
                var hash = Security.Validate(login.Password, user.Password);
                isValidLogin = (user != null && login.Username == user.LoginName && hash);
            }

            if (isValidLogin)
            {
                var token   = GenerateToken(_signingConfigurations, _tokenConfigurations, user);
                var newUser = _mapper.Map <UserDto>(user);
                return(Ok(new
                {
                    user = newUser,
                    authenticated = true,
                    created = token.DateCreated.ToString("yyyy-MM-dd HH:mm:ss"),
                    expiration = token.DateExpiration.ToString("yyyy-MM-dd HH:mm:ss"),
                    accessToken = token.Value,
                }));
            }
            else
            {
                return(Unauthorized(new
                {
                    authenticated = false,
                    message = "Username or password invalid!"
                }));
            }
        }