public string Login(LoginMessage message) { if (!message.IsValid()) { throw HttpResponseExceptionHelper.Create("Information manquante pour authentification.", HttpStatusCode.BadRequest); } using (var db = new SystemDBContext()) { var user = new UserModel(); var facebookLogin = false; // login with facebook if (!string.IsNullOrWhiteSpace(message.FacebookId)) { user = db.Users.FirstOrDefault(x => x.FacebookId == message.FacebookId); facebookLogin = true; } // login with Credentials else { user = db.Users.FirstOrDefault(x => x.Username == message.Username); } if (user == null) { throw HttpResponseExceptionHelper.Create("usager invalide.", HttpStatusCode.BadRequest); } // Connect with user credentials if (!facebookLogin) { if (!PasswordHash.ValidatePassword(message.Password, user.Password)) { throw HttpResponseExceptionHelper.Create("Information invalides pour la connexion.", HttpStatusCode.Forbidden); } } var hashId = user.HashId; //if(ConnexionWebsocket.ConnectedUsersHash.Contains(hashId)) //throw HttpResponseExceptionHelper.Create("L'Usager est déjà connecter.", HttpStatusCode.Forbidden); return(GetToken(user)); } }