예제 #1
0
    def post(self):
        username = self.get_argument('username', None)
        password = self.get_argument('password', None)
        # repasswd = self.get_argument('repassword', None)
        email = self.get_argument('email', None)
        sex = self.get_argument('sex', None)
        avatar = self.request.files['avatar'][0]

        encrypted = encrypt_password(password)
        b64avatar = base64.b64encode(avatar['body'])

        sql = """insert into `users`(username, password, email, sex, avatar)
        values (%s, %s, %s, %s, %s)"""
        yield self.async_task(self.db.insert, sql, username, encrypted, email,
                              sex, b64avatar)
        # Send confirm email and redirect to email link
        token = gen_token()
        url = '{0}://{1}/verify/{2}'.format(self.request.protocol,
                                            self.request.host, token)
        subject = mail.SIGNUP_SUBJECT
        message = mail.SIGNUP_MESSAGE.format(name=username, url=url)
        from_addr = options.from_addr
        from_pwd = options.from_pwd
        smtp_server = options.smtp_server
        # Use task queue send email
        taskq.tqueue.Queue().enqueue(mail.send_email,
                                     (from_addr, from_pwd, username, email,
                                      message, subject, smtp_server))
        # Insert into table and wait to verify
        sql = 'insert into `verify` (token, username) values (%s, %s)'
        yield self.async_task(self.db.insert, sql, token, username)
        self.render("mail.html", username=username, message="注册成功")
예제 #2
0
파일: user.py 프로젝트: ListFranz/Chat-Room
    def post(self):
        username = self.get_argument('username', None)
        password = self.get_argument('password', None)
        # repasswd = self.get_argument('repassword', None)
        email = self.get_argument('email', None)
        sex = self.get_argument('sex', None)
        avatar = self.request.files['avatar'][0]

        encrypted = encrypt_password(password)
        b64avatar = base64.b64encode(avatar['body'])

        sql = """insert into `users`(username, password, email, sex, avatar)
        values (%s, %s, %s, %s, %s)"""
        yield self.async_task(self.db.insert,
                              sql, username, encrypted, email, sex, b64avatar)
        # Send confirm email and redirect to email link
        token = gen_token()
        url = '{0}://{1}/verify/{2}'.format(
            self.request.protocol, self.request.host, token)
        subject = mail.SIGNUP_SUBJECT
        message = mail.SIGNUP_MESSAGE.format(name=username, url=url)
        from_addr = options.from_addr
        from_pwd = options.from_pwd
        smtp_server = options.smtp_server
        # Use task queue send email
        taskq.tqueue.Queue().enqueue(
            mail.send_email,
            (from_addr, from_pwd, username, email,
             message, subject, smtp_server))
        # Insert into table and wait to verify
        sql = 'insert into `verify` (token, username) values (%s, %s)'
        yield self.async_task(self.db.insert, sql, token, username)
        self.render("mail.html", username=username, message="注册成功")
예제 #3
0
    def post(self):
        email = self.get_argument('email', None)
        sql = 'select * from users where email=%s'
        user = yield self.async_task(self.db.get, sql, email)

        token = gen_token()
        url = '{0}://{1}/changepassword/{2}'.format(
            self.request.protocol, self.request.host, token)
        subject = mail.FINDPW_SUBJECT
        message = mail.FINDPW_MESSAGE.format(name=user.username, url=url)
        from_addr = options.from_addr
        from_pwd = options.from_pwd
        smtp_server = options.smtp_server
        yield self.async_task(mail.send_email, from_addr, from_pwd, user.username,
                              email, message, subject, smtp_server)
        # Insert into table
        sql = 'insert into `losspw` (token, username) values (%s, %s)'
        yield self.async_task(self.db.insert, sql, token, user.username)
        self.render("mail.html",
                    username=user.username, message="您的密码更改请求已接受")
예제 #4
0
    def post(self):
        email = self.get_argument('email', None)
        sql = 'select * from users where email=%s'
        user = yield self.async_task(self.db.get, sql, email)
        username = user.username

        token = gen_token()
        url = '{0}://{1}/changepassword/{2}'.format(self.request.protocol,
                                                    self.request.host, token)
        subject = mail.FINDPW_SUBJECT
        message = mail.FINDPW_MESSAGE.format(name=username, url=url)
        from_addr = options.from_addr
        from_pwd = options.from_pwd
        smtp_server = options.smtp_server
        # Use task queue send email
        taskq.tqueue.Queue().enqueue(mail.send_email,
                                     (from_addr, from_pwd, username, email,
                                      message, subject, smtp_server))
        # Insert into table
        sql = 'insert into `losspw` (token, username) values (%s, %s)'
        yield self.async_task(self.db.insert, sql, token, username)
        self.render("mail.html", username=username, message="您的密码更改请求已接受")