async def user_yes(request, *, name, em, mm, t):
    '''
    邮箱验证注册
    :param request:
    :param name:
    :param em:
    :param mm:
    :return:
    '''
    if float(time.time()) - float(t) > 1800:
        return 'redirect:/'
    uid = next_id()
    sha1_passwd = '%s:%s' % (uid, mm)
    user = User(id=uid,
                name=name.strip(),
                email=em,
                passwd=hashlib.sha1(sha1_passwd.encode('utf-8')).hexdigest(),
                image='http://www.gravatar.com/avatar/%s?d=mm&s=120' %
                hashlib.md5(em.encode('utf-8')).hexdigest())
    await user.save()
    # make session cookie
    r = web.Response()
    r.set_cookie(COOKIE_NAME,
                 user2cookie(user, 86400),
                 max_age=86400,
                 httponly=True)
    user.passwd = '******'
    r.content_type = 'application/json'
    r.body = json.dumps(user, ensure_ascii=False).encode('utf-8')
    return 'redirect:/'
async def api_register_user(*, email, name, passwd):
    if not name or not name.strip():
        raise APIValueError('name')
    if not email or not _RE_EMAIL.match(email):
        raise APIValueError('email')
    if not passwd or not _RE_SHA1.match(passwd):
        raise APIValueError('passwd')
    users = await User.findAll('email=?', [email])
    if len(users) > 0:
        raise APIError('register:failed', 'email', 'Email is already in use.')
    uid = next_id()
    sha1_passwd = '%s:%s' % (uid, passwd)
    user = User(id=uid,
                name=name.strip(),
                email=email,
                passwd=hashlib.sha1(sha1_passwd.encode('utf-8')).hexdigest(),
                image='http://www.gravatar.com/avatar/%s?d=mm&s=120' %
                hashlib.md5(email.encode('utf-8')).hexdigest())
    await user.save()
    # make session cookie:
    r = web.Response()
    r.set_cookie(COOKIE_NAME,
                 user2cookie(user, 86400),
                 max_age=86400,
                 httponly=True)
    user.passwd = '******'
    r.content_type = 'application/json'
    r.body = json.dumps(user, ensure_ascii=False).encode('utf-8')
    return r
Beispiel #3
0
def user_register():
    form = UserRegistration()
    if form.validate_on_submit():
        password_hash = crypt.generate_password_hash(
            form.password.data).decode('utf-8')
        user = User(email=form.email.data,
                    password=password_hash,
                    display_name=form.display_name.data)
        database.session.add(user)
        database.session.commit()
        flash("Registration Successful, please login to continue", "success")
        logger(state="INFO",
               message="User account for {} created".format(form.email.data))
        return redirect(url_for('runtime.user_login'))
    else:
        return render_template('user_register.html',
                               title="Register Account",
                               form=form)
Beispiel #4
0
def test(loop):
    yield from orm.create_pool(loop=loop, user='******', password='******', db='awesome')
    u = User(name='Won', email='*****@*****.**', passwd='1234567890', image='about:blank')
    yield from u.save()