2013-05-09 33 views
0

我想用烧瓶为了向android应用程序提供基于http的web服务。我发现flask-login是管理身份验证的最简单方式,但它似乎面向基于模板的Web应用程序。有没有办法使用Flask管理Web服务的身份验证?

是否有另一种基于Web服务的认证解决方案?

+0

基于模板的Web应用程序是什么意思?使用烧瓶登录有什么问题? – 2013-05-09 13:27:42

+0

我的意思是对于标准网页而不是Web服务,使用REST Web服务你不能有会话,所以烧瓶登录模块将无法完成这项工作。 – 2013-05-09 16:05:20

+1

除非您正在使用某种类型的共享机密,否则REST服务仍然需要能够处理会话和/或身份验证密钥(否则您无法验证身份并*然后*执行对必要终端的调用)。我误解了什么吗? – 2013-05-09 17:47:16

回答

2

Flask-Login很好的解决方案。您可以添加一个装饰的观点:

def login_required(): 
    def wrapper(fn): 
     @wraps(fn) 
     def decorated_view(*args, **kwargs): 
      if not current_user.is_authenticated(): 
       abort(401) 
       # return jsonify(status='logged_off') 
      return fn(*args, **kwargs) 
     return decorated_view 
    return wrapper 

所以,如果用户不认可与login_required装饰回报401 Unauthorized响应(或自定义消息有效的响应,如果你想要的)任何观点。