2016-08-28 47 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

相關問題