public IHttpResponse DoLogin(IHttpRequest request) { //1. Validate input var userName = request.FormData["username"]?.ToString().Trim() ?? string.Empty; var password = request.FormData["password"]?.ToString().Trim() ?? string.Empty; if (string.IsNullOrWhiteSpace(userName) || string.IsNullOrWhiteSpace(password)) { return(this.BadRequestError("Please enter username and password!")); } var hashedPasssword = this.hashService.Hash(password); var user = this.db.Users.FirstOrDefault(x => x.UserName == userName && x.Password == hashedPasssword); if (user == null) { return(this.BadRequestError("Invalid username or password!")); } var userContent = this.cookieService.GetUserCookie(user.UserName); var response = new RedirectResult("/"); response.AddCookie(new HttpCookie(".auth-cakes", userContent, 7) { HttpOnly = true }); return(response); }
public IHttpResponse Logout(IHttpRequest request) { if (!request.Cookies.ContainsCookie(".auth-cakes")) { return(new RedirectResult("/")); } var cookie = request.Cookies.GetCookie(".auth-cakes"); cookie.Delete(); var response = new RedirectResult("/"); response.AddCookie(cookie); return(response); }
public IHttpResponse LogOf(IHttpRequest request) { string cookieValue = request.Cookies.GetCookie(loginCookieName).Value; if (cookieValue is null) { return(this.ControllerError($"No user was loged in at the moment", "Home", "Home")); } var cookieDelete = new HttpCookie(loginCookieName, cookieValue, true, -1, true, false); IHttpResponse redirectToHome = new RedirectResult("/"); redirectToHome.AddCookie(cookieDelete); return(redirectToHome); }
public IHttpResponse Logout() { if (!this.Request.Cookies.ContainsCookie(".auth-cakes")) { return new RedirectResult("/"); } var cookie = this.Request.Cookies.GetCookie(".auth-cakes"); cookie.Delete(); var response = new RedirectResult("/"); response.AddCookie(cookie); return response; }
public IHttpResponse PostLoginView(IHttpRequest request) { var usernameOrEmail = request.FormData["usernameOrEmail"].ToString().Trim(); var password = request.FormData["password"].ToString(); var isEmail = Regex.IsMatch(WebUtility.UrlDecode(usernameOrEmail), EmailRegex); var isUsername = Regex.IsMatch(usernameOrEmail, UsernameRegex); if ((!isEmail && !isUsername) || usernameOrEmail.Length < UsernameOrEmailLength) { return(this.ErrorView(InvalidCredentials)); } var hashedPassword = this.HashService.Hash(password); var user = this.Db.Users.FirstOrDefault( u => (u.Username == usernameOrEmail && u.Password == hashedPassword) || (u.Email == usernameOrEmail && u.Password == hashedPassword)); if (user == null) { return(this.ErrorView(InvalidUsernameEmailOrPassword)); } var cookieContent = this.UserCookieService.GetUserCookie(usernameOrEmail); //request.Session.AddParamter("username", cookieContent); var cookie = new HttpCookie(".auth-cookie", cookieContent); cookie.SetPath("/"); var response = new RedirectResult("/"); response.AddCookie(cookie); return(response); }
public IHttpResponse DoLogin() { var userName = this.Request.FormData["username"].ToString().Trim(); var password = this.Request.FormData["password"].ToString(); var hashedPassword = this._hashService.Hash(password); var user = this.Db.Users.FirstOrDefault(u => u.Username == userName && u.Password == hashedPassword); if (user == null) { return this.BadRequestError("Invalid username and password"); } var response = new RedirectResult("/"); var userCookie = this._userCookieService.GetUserCookie(user.Username); response.AddCookie(new HttpCookie(".auth-cakes", userCookie, 7)); return response; }