简体   繁体   English

启用身份验证后,Flask-restful应用程序失败

[英]Flask-restful app fails when authentication is enabled

I'm getting this error whenever I try and enable authentication using flask_httpauth for my flask_restful project: 每当我尝试为flask_restful项目使用flask_httpauth启用身份验证时,都会出现此错误:

AttributeError: 'function' object has no attribute 'as_view'

Here's a very basic example: apicontroller.py: 这是一个非常基本的示例:apicontroller.py:

from flask_restful import Resource, Api
from flasktest import api, app
from flask_httpauth import HTTPTokenAuth

auth = HTTPTokenAuth()

@auth.login_required
class ApiController(Resource):
    def get(self):
        return True

api.add_resource(ApiController, '/api/apicontroller')

init .py: 初始化 .py:

from flask import render_template
from flask import Flask, request, render_template, session, flash, redirect, url_for, jsonify
from flask_restful import Resource, Api, reqparse, fields
from flask_httpauth import HTTPTokenAuth


app = Flask(__name__)

api = Api(app)

import flasktest.apicontroller

Whenever I decorate the controller class with @auth.login_required , it fails with the mentioned error. 每当我用@auth.login_required装饰控制器类时,它都会失败,并显示所提到的错误。 How can I fix this? 我怎样才能解决这个问题?

I believe that you cannot not apply decorators to class. 我相信您不能将装饰器应用于课堂。

To solve that: 为了解决这个问题:

from flask_restful import Resource, Api
from flasktest import api, app

from flask_httpauth import HTTPTokenAuth

auth = HTTPTokenAuth()

class ApiController(Resource):
    decorators = [auth.login_required]

    def get(self):
        return True

api.add_resource(ApiController, '/api/apicontroller')

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM