2014-09-25 34 views
0

我使用HTTP通過用戶身份驗證創建Web服務。該認證在@ auth.get_password完成:Webservice - 登錄後在功能中使用用戶名

from flask.ext.httpauth import HTTPBasicAuth 

@auth.get_password 
def getPassword(user): 
    if user == 'dummy': 
     return password 
    else: 
     return None 

現在我想創建一個功能,我也可以用這個給定用戶名,例如用於更改用戶密碼:

# Change password 
@app.route('/users/change_password/', methods=['PUT']) 
@auth.login_required 
def changeUserPassword(user): 
    return user + ", You want to change your password" 

但是沒有「用戶」變量。如何將「用戶」傳遞給功能changeUserPassword()?我不想開始會話或其他事情,因爲我正在嘗試構建一個RESTful Web服務。

回答

1

隨着flask-httpauth,您可以使用auth.username()來獲得當前用戶

@app.route('/users/change_password/', methods=['PUT']) 
@auth.login_required 
def changeUserPassword(user): 
    return auth.username() + ", You want to change your password" 
+0

謝謝您的快速響應。不幸的是,我沒有使用'flask.ext.login',所以我沒有login_manager,似乎是'current_user'需要的。 – zarathustra 2014-09-25 16:37:19

+0

@zarathustra我錯過了你使用'httpauth'。我編輯了答案 – goncalopp 2014-09-25 16:56:43

+0

它的工作原理!謝謝! – zarathustra 2014-09-25 18:11:59

相關問題