コード例 #1
0
	def post(self):
		try:
			(email, username, password) = (self.get_argument("email", None), self.get_argument("username", None), self.get_argument("password", None))
		
			#Check for empty fields & already existing users
			databaseOperations.connectToDatabase('astrodb')
			errMsg = errorCheck.checkRegister(email, username, password)
			databaseOperations.closeConnectionToDatabase()
			if errMsg != None:
				self.render("../register.html", userName=self.get_secure_cookie("user"), errMsg=errMsg)
				return
				
			hashedPwd = hashlib.sha512(password).hexdigest()
			ip_address = self.request.remote_ip
			databaseOperations.connectToDatabase('astrodb')
			databaseOperations.register(email, username, hashedPwd, ip_address)
			#Create reset code
			chars = string.ascii_lowercase + string.ascii_uppercase + string.digits
			resetCode =  ''.join( random.choice(chars) for r in range(15) )
			databaseOperations.changeResetCode(username, resetCode)
			databaseOperations.closeConnectionToDatabase()
			
			#Construct the verification code
			r = str(random.randint(0,1000))
			verificationCode = hashlib.sha512(username + hashedPwd + r).hexdigest()[:35]
			#Construct the URL and EMAIL CONTENTS
			url = "http://www.astrocamel.com/verify?u=%s&c=%s&r=%s" %(username, verificationCode, r)
		
			to = email
			gmail_user = '******'
			gmail_pwd = 'x'
			smtpserver = smtplib.SMTP("smtp.gmail.com",587)
			smtpserver.ehlo()
			smtpserver.starttls()
			smtpserver.ehlo
			smtpserver.login(gmail_user, gmail_pwd)
			header = 'To:' + to + '\n' + 'From: ' + gmail_user + '\n' + 'Subject:Registration at AstroCamel \n'
			msg = header + "\n You have successfully registers at AstroCamel.com. Visit " + url + " to verify your registration. \n\n"
			smtpserver.sendmail(gmail_user, to, msg)
			smtpserver.close()			
			self.render("../message.html", userName=self.get_secure_cookie("user"), message="Registration complete. Check your email for the verification code. You may need to check your junk mail")
		except:
			self.render("../message.html", userName=self.get_secure_cookie("user"), message="Registration could not be complete due to an error")
コード例 #2
0
	def post(self):
		try:
			username = self.get_argument("user", None)
		
			#Check for empty field
			if not username:
				self.render("../message.html", userName=self.get_secure_cookie("user"), message="Username was left blank")			
				return
				
			databaseOperations.connectToDatabase('astrodb')
			email = databaseOperations.getEmailFromUsername(username)
			
			if not email:
				self.render("../message.html", userName=self.get_secure_cookie("user"), message="Cannot reset password for this user")
				return
			else:
				email = email[0]
				
			#Create reset code
			chars = string.ascii_lowercase + string.ascii_uppercase + string.digits
			resetCode =  ''.join( random.choice(chars) for r in range(15) )
			databaseOperations.changeResetCode(username, resetCode)
			databaseOperations.closeConnectionToDatabase()
		
			#Construct the URL
			url = "http://www.astrocamel.com/resetpassword?u=%s&c=%s" %(username, resetCode)

			to = email
			gmail_user = '******'
			gmail_pwd = 'x'
			smtpserver = smtplib.SMTP("smtp.gmail.com",587)
			smtpserver.ehlo()
			smtpserver.starttls()
			smtpserver.ehlo
			smtpserver.login(gmail_user, gmail_pwd)
			header = 'To:' + to + '\n' + 'From: ' + gmail_user + '\n' + 'Subject:Lost Password - AstroCamel \n'
			msg = header + "\n You have requested a password reset. Please follow the link: " + url + " to reset your password. \n\n"
			smtpserver.sendmail(gmail_user, to, msg)
			smtpserver.close()
			self.render("../message.html", userName=self.get_secure_cookie("user"), message="An email has been sent to your address with further instructions on how to reset your password. You may need to check your junk mail")
		except:
			self.render("../message.html", userName=self.get_secure_cookie("user"), message="Cannot reset password for this user")