【问题标题】:Pass username and password to Flask Oauth2 Server (password grant type)将用户名和密码传递给 Flask Oauth2 Server(密码授予类型)
【发布时间】:2017-01-04 13:29:40
【问题描述】:

我正在使用 Flask-Oauthlib 实现 Flask REST API,想知道是否可以在 URL 参数中传递用户名和密码?例如:

GET http://127.0.0.1:5000/api/token?client_id=CLIENT_ID&grant_type=password&username=myusername&password=hopeudontseemypass

在我的开发环境中,所有请求都以纯文本形式显示在日志中,如下所示:

127.0.0.1 - "GET /api/token?client_id=CLIENT_ID&grant_type=password&username=myusername&password=hopeudontseemypass HTTP/1.1" 200 -

有什么方法可以传递 base64 编码的用户名/传递请求标头?所有的密码授权类型示例都在 URL 参数中使用用户名和密码,所以如果服务器使用 SSL,不知道这是否真的有问题。

【问题讨论】:

    标签: python authentication flask oauth-2.0 flask-oauthlib


    【解决方案1】:

    OAuth 协议规范规定必须将参数发布到令牌端点。通过接受它们作为查询参数,授权服务器违反了规范。最好使用 POST 来避免凭据出现在日志文件中。

    【讨论】:

    • 太棒了!感谢您的回答。没有注意到我允许 GET ...我将其更改为 POST 但仍然在 HTTP 请求日志中以纯文本形式获取用户名和密码。
    • 你把GET参数添加到POST后去掉了吗?
    • 现在我将获取参数移到了帖子正文中,它可以工作了
    猜你喜欢
    • 2017-03-10
    • 2018-09-20
    • 1970-01-01
    • 2015-07-18
    • 1970-01-01
    • 2019-08-05
    • 2017-10-08
    • 2015-05-20
    • 1970-01-01
    相关资源
    最近更新 更多