Apidoc for Flask-JWT的身份验证网址

时间:2016-03-29 05:41:04

标签: python api-doc flask-jwt

我已经开始使用apidoc来生成REST api文档。我已经尝试了different things

在基于flask的api应用程序中,我使用JWT(特别是flask-jwt)进行身份验证。文档生成正确,但来自doc的请求没有正确生成。

这是我用docsting生成doc

的地方
def authenticate(username, password):
    """
    @api {post} /auth Authentication url
    @apiName Authentication
    @apiGroup Login

    @apiParam {String} username Username of the user
    @apiParam {String} password Password of the user

    @apiSuccess {String} access_code JWT

    @apiSuccessExample Success Response
    HTTP/1.1 200 OK
    {
      "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZGVudGl0eSI6IjM5MDA4MGExLWY0ZjctMTFlNS04NTRkLTI4ZDI0NDQyZDNlNyIsImlhdCI6MTQ1OTE3ODE0NSwibmJmIjoxNDU5MTc4MTQ1LCJleHAiOjE0NTkxNzg0NDV9.nx_1a4RmvJ7Vlf1CvnMzqoTfzChcuJnDb1Tjy1_FnXw"
    }

    @apiErrorExample Invalid Credentials
    {
      "description": "Invalid credentials",
      "error": "Bad Request",
      "status_code": 401
    }
    """
    user = session.query(User).filter_by(username=username).first()
    if user and user.is_correct_password(password):
        return user
    return False

当我生成文档时,它会正确生成

$ apidoc -i onehop/ -o doc
  1. 但是当我从生成的doc传递凭据时,请求失败。我在烧瓶请求中得到的请求数据是''(空)
  2. 即使在docstring中包含Content-Type标头后,它也会失败。我在烧瓶请求中得到的请求数据是username=test@example.com&password=test123
  3. 我已经通过在Flask-JWT的代码中放置调试点

    来确认
    def _default_auth_request_handler():
        data = request.get_json()   # My debug poing
        username = data.get(current_app.config.get('JWT_AUTH_USERNAME_KEY'), None)
        password = data.get(current_app.config.get('JWT_AUTH_PASSWORD_KEY'), None)
    

    但是当我使用postman发出相同的请求时,它会正常发生。

    邮差标题 enter image description here

    Apidoc标题 enter image description here

    我错过了什么?

0 个答案:

没有答案