Esempio n. 1
0
async def create_upload_file(request: Request):
    form = await request.form()
    file = form.get('file')
    key = str(uuid.uuid4())
    data = await file.read()
    path = os.path.join(BASE_DIR, f'static/images/{key}')
    with open(path, 'wb') as f:
        f.write(data)
    return success_response({'key': key})
Esempio n. 2
0
async def regist(data: Request):
    form = UserRegistForm(data=await data.json())
    if await form.is_valid():
        user = await form.create(form.validated_data)
        del user['password']
        token = gen_token(user)
        content = success_response({'token': token})
        response = JSONResponse(content=content)
        response.set_cookie('token', token, max_age=7200)
        return response

    return {'code': 400, 'message': form.errors}
Esempio n. 3
0
async def login(data: Login):
    print(data)
    user = await mongodb.users.find_one(
        {
            'email': data.email,
            'password': gen_password(data.password)
        }, {'password': 0})
    if not user:
        return {
            'code': 400,
            'message': '用户名或密码错误',
        }
    token = gen_token(user)
    content = success_response({'token': token})
    response = JSONResponse(content=content)
    response.set_cookie('token', token, max_age=7200)
    return response
Esempio n. 4
0
async def update_password(data: UpdatePassword):
    is_valid, userinfo = check_token(data.token)
    if not is_valid:
        return {'code': 400, 'message': "链接已失效"}
    if data.password != data.password_ensure:
        return {'code': 400, 'message': "密码不匹配"}
    await mongodb.users.update_one(
        {'email': userinfo['email']},
        {'$set': {
            'password': gen_password(data.password)
        }})
    userinfo = await mongodb.users.find_one({'email': userinfo['email']},
                                            {'password': 0})

    token = gen_token(userinfo)
    content = success_response({'token': token})
    response = JSONResponse(content=content)
    response.set_cookie('token', token, max_age=7200)
    return response
Esempio n. 5
0
async def send_email(email: str):
    code = f'{random.randint(100000,999999):06}'
    redis.set(f'{email}_code', code, ex=300)
    # send_mail_code(email, code)
    return success_response({'email_code': code})
Esempio n. 6
0
async def upload_token():
    return success_response({"token": generate_upload_token()})
Esempio n. 7
0
async def reset_password(email: str):
    token = gen_mail_token({'email': email})
    send_mail_reset(email, token)
    return success_response({'token': token})