コード例 #1
0
def login():
    if not request.is_json:
        return jsonify({'error': 'invalid json data'}), 400

    login_data = request.get_json()

    email = login_data.get('email')
    password = login_data.get('password')

    if not all([email, password]):
        return jsonify({'message': 'invalid credentials'}), 400

    user = User.find_by_email(email)

    if not user:
        return jsonify({'error': 'user not exist with this email'}), 400

    authenticated = user.check_password(password)

    if not authenticated:
        return jsonify({'error': 'invalid username/password'}), 400

    access_token = create_access_token(identity=email)
    refresh_token = create_refresh_token(identity=email)
    return jsonify({
        'access_token': access_token,
        'refresh_token': refresh_token
    }), 200
コード例 #2
0
ファイル: user.py プロジェクト: ganeshnegi/flask_rest
    def post(self):
        input = request.get_json(force=True)

        # try:
        #     user = user_schema.load(input)
        # except Exception as e:
        #     return e.messages, 400

        user = user_schema.load(input)
        if user.errors:
            return user.errors, 400

        if User.find_by_email(input['email']):
            return {'message': 'email already registered'}

        try:
            new_user = User(**input)
            new_user.set_password(input['password'])
            new_user.save_to_db()
            access_token = create_access_token(identity=new_user.email)
            refresh_token = create_refresh_token(identity=new_user.email)
            return {
                'access_token': access_token,
                'refresh_token': refresh_token
            }, 201
        except:
            return {'message': 'something went wrong'}, 500