login.py 2.35 KB
Newer Older
wanli's avatar
wanli committed
1 2 3 4 5 6 7 8
'''
Author: your name
Date: 2021-04-14 14:12:18
LastEditTime: 2021-07-01 14:45:53
LastEditors: your name
Description: In User Settings Edit
FilePath: \evm-store\backend\view\login.py
'''
wanli's avatar
wanli committed
9 10 11 12
#!/usr/bin/env python
# -*- coding: utf_8 -*-
import logging
import traceback
wanli's avatar
wanli committed
13
from flask import Blueprint, request, redirect, url_for
wanli's avatar
wanli committed
14 15 16 17 18 19
from app import config, signalManager
from fullstack.login import Auth
from fullstack.validation import validate_schema
from fullstack.response import ResponseCode, response_result
from schema.login import LoginSchema, RegisterSchema

wanli's avatar
wanli committed
20
logger = logging.getLogger(__name__)
wanli's avatar
wanli committed
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76

login_api = Blueprint("login_api", __name__, url_prefix="/api/v1/%s/login" % config['NAME'])


@login_api.route("/", methods=['GET'])
def index():
    return redirect(url_for('/'))


@login_api.route("/login", methods=['POST'])
@validate_schema(LoginSchema)
def login():
    '''
    用户登录
    data: { "username": "xx", "password": "xx" }
    '''

    try:
        result, message = signalManager.actionLogin.emit(request.schema_data)
        if result:
            return response_result(message, data=result)
        else:
            return response_result(message)
    except Exception as e:
        traceback.format_exc()
        logger.error(str(e))
        return response_result(ResponseCode.SERVER_ERROR, msg=str(e))


@login_api.route('/logout', methods=['POST'])
@Auth.auth_required
def logout():
    '''
    用户登出
    '''

    try:
        isSuccess, message = signalManager.actionLogout.emit()
        if isSuccess:
            return response_result(ResponseCode.OK, msg=message)
        else:
            return response_result(ResponseCode.REQUEST_ERROR, msg=message)
    except Exception as e:
        traceback.format_exc()
        logger.error(str(e))
        return response_result(ResponseCode.SERVER_ERROR, msg=str(e))


@login_api.route('/register', methods=['POST'])
@validate_schema(RegisterSchema)
def register():
    '''
    用户注册
    '''

    try:
wanli's avatar
wanli committed
77
        isSuccess, message = signalManager.actionRegister.emit(request.schema_data)
wanli's avatar
wanli committed
78 79 80 81 82 83 84 85
        if isSuccess:
            return response_result(ResponseCode.OK, msg=message)
        else:
            return response_result(ResponseCode.REQUEST_ERROR, msg=message)
    except Exception as e:
        traceback.format_exc()
        logger.error(str(e))
        return response_result(ResponseCode.SERVER_ERROR, msg=str(e))