def SignUpPostHandler(self, httpMessage): #check user name is unique #Enter into database postParams = httpMessage.ParseBodyPost() #check password and re-password match if postParams["password"] == postParams["rePassword"]: if DataBase.GetInstance().AddNewUser(postParams["userName"], postParams["password"]): #return redirect to main page return self.RedirectToMainPage(postParams["userName"]) #return sign up page with error; TODO add error messages return self.ServeSignUpPage() #return to sign up page with error; TODO add error messages return self.ServeSignUpPage()
async def handleMessages(self, websocket, path): print("socket connected to websocket") # register(websocket) sends user_event() to websocket await self.register(websocket) try: async for content in websocket: contentJson = json.loads(content) message = contentJson["message"] valid, tokenBody = TokenAuthentication.DecodeToken( contentJson["Token"]) if not valid: #TODO close connection in this scenario continue DataBase.GetInstance().AddMessage(message, tokenBody["UserName"]) await self.NotifyUsers(tokenBody["UserName"], message) finally: await self.unregister(websocket)
def LoginHandler(self, httpMessage): if httpMessage.command == 'GET': return self.ServeLoginPage() if httpMessage.command == 'POST': #check to make sure password is good #make token for user #redirect to main page info = httpMessage.body.split("&") userName = info[0].split('=')[1] password = info[1].split('=')[1] userName = urllib.parse.unquote_plus(userName) password = urllib.parse.unquote_plus(password) #check for valid user name and password dbInstance = DataBase.GetInstance() if dbInstance.ValidateUser(userName, password): #make JWT java web token return self.RedirectToMainPage(userName) else: return self.ServeLoginPage()
def ServeIndex(self, httpMessage): if httpMessage.command == 'GET': #Check for valid token if "Token" in httpMessage.cookies: encodedToken = httpMessage.cookies["Token"] valid, decodedToken = TokenAuthentication.DecodeToken( encodedToken) if not valid: return self.ServeLoginPage() print("The user is " + decodedToken["UserName"]) response = HttpResponseBuilder.MakeStatus200() response += HttpResponseBuilder.MakeGenericHeader() params = {} params['messages'] = DataBase.GetInstance().GetAllMessages() params['ipAddress'] = self.network.ServerIp params['portNum'] = self.network.WebsocketPortNum response += HttpResponseBuilder.MakeFile( "Views/main.html", params) response += HttpResponseBuilder.newline return response return self.ServeLoginPage()