尽管授权,如何在烧瓶中返回 401

时间:2021-04-19 06:02:42

标签: python-3.x flask http-status-code-401

我是flask的新手,我想返回401错误,我没有使用身份验证,我只是使用参数api_key来检查用户是否通过身份验证。 我已经尝试过 abort(401)return false,但它返回错误 400“Bad Request”,这是返回 401 的默认方式。还是有不同的方式来做到这一点?

我的代码:

import flask
from flask import jsonify, request, Response
from flask_cors import CORS, cross_origin
from GoogleNews import GoogleNews
googlenews = GoogleNews()
googlenews.set_lang('en')
googlenews.set_period('1d')
googlenews.set_encode('utf-8')   
app=flask.Flask(__name__)
cors = CORS(app)
app.config['CORS_HEADERS'] = 'Content-Type'
@cross_origin()
@app.route('/', methods=["GET"])
def return_news():
    API_KEY = request.args['api_key']
    if API_KEY == "xyz":
        googlenews.get_news('TECHNOLOGY')
        return jsonify(googlenews.result(True)[0:4])
    else:
        return Response(response="Unauthorized", status=401)

谢谢

2 个答案:

答案 0 :(得分:0)

没有实际代码很难说,但我认为它不是使用flask abort() 而是python 内部abort() 函数。

检查下面的代码:

import flask
app = flask.Flask("aborter")

@app.route("/abort")
def abort():
    return flask.abort(401)


if __name__ == '__main__':
    app.run()

快乐编码

答案 1 :(得分:0)

相反,请尝试 flask.Response 对象。

from flask import Flask, Response

app = Flask(__name__)

@app.route("/abort")
def abort():
    return Response(response="Unauthorized", status=401)


app.run()