Python oauth / flask,如何从装饰函数传递参数

时间:2018-03-30 09:58:20

标签: python flask python-decorators flask-oauthlib

我需要从flask内部调用@ oauth.token_handler的方法。 签名如下:

@oauth.token_handler
def access_token(*args, **kwargs):
    return None

因此它在内部调用token_handler()的实现。 我试着打电话

response = access_token("", {'grant_type':'password'})

希望oauth可以检索方法中的参数,但它不起作用。

400 {"error": "unsupported_grant_type"}

Oauth找不到数据(对我来说没有意外)

当curl方法按预期工作时:

curl -k -X POST -d "client_id=f9O7kapzXnK1gYAxxxxxxx&grant_type=password&username=blah&password=pass" http://localhost:5001/oauth/token

我的问题是,如何在内部伪造此调用oauth,以便它可以检索所有信息(grant_type,client_id等...)。因为目前,我试着没有运气。

注意:我知道应该从客户端调用oauth;但是在这里,过程是一个人发送他/她的提供者凭证为他/她的id profil,我检查凭证是否正常,然后我用我自己的oauth提供者创建一个内部帐户并将access_token发送给我申请的资源。 我的问题是我不知道如何使用正确的参数调用access_token()。 Flask-oauth无法找到我的论点。

Doc可以在这里找到:  http://flask-oauthlib.readthedocs.io/en/latest/api.html

1 个答案:

答案 0 :(得分:0)

我是Flask-OAuthlib的作者。我不得不说,它没有很好的设计,我强烈建议你使用Authlib。这是一个example of OAuth 2 provider