示例#1
0
def api_register_user(*, email, name, passwd):
    if not name or not name.strip():
        raise APIValueError('name', 'invalid name')
    if not email or not _RE_EMAIL.match(email):
        raise APIValueError('email', 'invalid email')
    if not passwd or not _RE_SHA1.match(passwd):
        raise APIValueError('passwd')
    users = yield from 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())
    yield from 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
示例#2
0
async def api_register_user(*, email, name, passwd):
    helper.check_string(name=name)
    helper.check_email_password(email, passwd)
    users = await User.findall('email=?', [email])
    if len(users) > 0:
        raise APIError('register: failed', 'email', 'Email is already in use.')
    uid = ghelper.get_unique_id()  # helper.get_unique_id
    passwd_sha1 = helper.make_passwd_sha1(uid, passwd)
    email_md5 = hashlib.md5(email.encode('utf-8')).hexdigest()
    image_str = 'http://www.gravatar.com/avatar/%s?d=mm&s=120' % email_md5
    user = User(id=uid,
                name=name.strip(),
                email=email,
                passwd=passwd_sha1,
                image=image_str)
    await user.save()  # 保存注册用户的信息
    # make session cookie:
    r = web.Response()
    cookie_name = ghelper.get_cookie_name()
    r.set_cookie(cookie_name,
                 helper.user2cookie(user, 86400),
                 max_age=86400,
                 httponly=True)  # 86400s = 24h = a day
    user.passwd = '******'
    r.content_type = 'application/json'
    r.body = json.dumps(user, ensure_ascii=False).encode('utf-8')
    return r
示例#3
0
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 = yield from 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())
	yield from user.save()
	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