Exemplo n.º 1
0
def create_user():
    i = ctx.request.input(phone='',password='',code='')
    phone = i.phone.strip()
    password = i.password.strip()
    code = i.code.strip()
    verify = VerifyCode.find_first('where num=?', phone)
    logging.info('the code %s and verify %s' %(code,verify))
    if not verify or verify.code!=code:
        raise APIError('register:failed','verify code','verify code is not correct.','-1')
    if time.time() - verify.created_at > 90:
        raise APIValueError('code',errcode='-3')
    
    if not phone or not _RE_PHONE.match(phone):
        raise APIValueError('phone',errcode='-1')
    if not password:
        raise APIValueError('password', errcode='-1')

    verify.delete()
    user = User.find_first('where phone=?',phone)
    if user and user.valid==True:
        raise APIError('register:failed','phone','phone is already in use.')

    if user:
        token = Token.find_first('where id=?', user.id)
        if not token:
            token_string = next_id()
            token = Token(id = user.id, token1=token_string, token2 = token_string)
            token.insert()
        else:
            token.token1 = next_id()
            logging.info('the update token is %s' % token.token1)
            token.update()
        user.password = password
        user.update()
        user.token = token.token1
    else:
        user = User(phone=phone, valid=False, password=password)
        user.insert()
        token_string = next_id()
        token = Token(id = user.id, token1=token_string, token2 = token_string)
        token.insert()
        user.token = token.token1
    user.pop('id')
    user.pop('password')
    user.pop('created_at')
    user.errcode='0'
    return user
Exemplo n.º 2
0
def change_token(uid):
    '''
    修改token
    '''
    tokens = yield from Token.findAll('uid=?', [uid])
    shal = '%s=%s=%s' % ('Token', uid, time.time())
    shal_uid = hashlib.sha1(shal.encode('utf-8')).hexdigest()

    token = Token(id=tokens[0].id,
                  uid=uid,
                  token_key=shal_uid,
                  last_time=time.time())
    yield from token.update()
    return token.token_key
Exemplo n.º 3
0
 def on_finish(self):
     q = Token.update(seen=True).where(Token.user == self.current_user)
     q.execute()
     super(SettingsHandler, self).on_finish()
Exemplo n.º 4
0
 def on_finish(self):
     q = Token.update(seen=True).where(Token.user == self.current_user)
     q.execute()
     super(SettingsHandler, self).on_finish()