将用户名和密码传递给Flask Oauth2 Server(密码授予类型)

时间:2016-08-28 11:06:49

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

我正在使用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,则不知道这是否真的有问题。

1 个答案:

答案 0 :(得分:2)

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