public int signIn(LoginRequestJSON req) { int userId = 0; using (MovieEntities db = new MovieEntities()) { if (req.network.ToLower() == "local") { string salt = string.Empty; string hashpassword = string.Empty; var salt_query = (from u in db.Users where u.email.ToLower() == req.email.ToLower() select u).ToList(); foreach (var item in salt_query) { salt = item.salt; } if (!string.IsNullOrWhiteSpace(salt)) { hashpassword = ComputeHash(salt, req.password); } var usr_query = (from u in db.Users where u.email.ToLower() == req.email.ToLower() && u.passwordHash == hashpassword select new { id = u.Users_ID }).FirstOrDefault(); if (usr_query != null) { userId = usr_query.id; } } else { var usr_social = (from u in db.Users join usm in db.UsersSocialMedias on u.Users_ID equals usm.Users_ID where u.email.ToLower() == req.email.ToLower() && usm.network.ToLower() == req.network.ToLower() select new { id = u.Users_ID }).FirstOrDefault(); if (usr_social != null) { userId = usr_social.id; } } } return(userId); }
public HttpResponseMessage Login([FromBody] LoginRequestJSON lq) { req = Request; if (lq == null) { return(Utils.CreateEmptyErrorResponse(req)); } string hashpassword = string.Empty; string errors = ""; ValidationResult loginres = lvalidator.Validate(lq); if (!loginres.IsValid) { errors = loginres.Errors[0].ErrorMessage; // shows the first error. return(Utils.CreateErrorResponse(req, errors.ToString())); } int userId = users.signIn(lq); if (userId != 0) { // generates an JWT access token valid for 24hrs. string authorizekey = Utils.GenerateLogintoken(userId.ToString()); usersessions.updateAccessToken(userId, authorizekey); LoginResponseJSON respo = new LoginResponseJSON(); respo.userId = userId.ToString(); respo.authorizeKey = authorizekey; return(Utils.CreateSuccessResponse(req, respo)); } else { return(Utils.CreateErrorResponse(req, "Invalid login credentials.")); } }