2016-08-28 35 views
0

我使用Flask-Oauthlib实现Flask REST API,并且想知道在URL参数中传递用户名和密码可以吗?例如:将用户名和密码传递给Flask Oauth2服务器(密码授权类型)

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,则不知道这是否是一个真正的问题。

回答

2

OAuth协议规范说明必须将参数POST-ed到令牌端点。通过接受它们作为查询参数,授权服务器违反了规范。更好地使用POST来避免证书以日志文件结尾。

+0

太棒了!感谢您的回答。没有注意到我允许GET ...我将其更改为POST,但仍然以HTTP请求日志中的纯文本形式获取用户名和密码。 – iqpolar

+0

您是否在将它们添加到POST后删除了GET参数? –

+0

现在我移动获取参数发布身体,它的工作原理 – iqpolar

相关问题