2014-09-25 62 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

相关问题