有关Flask身份验证的一些问题

时间:2016-02-19 07:42:26

标签: python flask

我已经阅读了一些关于Http Basic身份验证的帖子。例如,http://blog.miguelgrinberg.com/post/restful-authentication-with-flask。我提出问题。

  1. 如果需要登录app.route('/ secret_main'),那么如何将app.route('/ secret_main / subs')包括在内?

  2. 因为Http basic不能过期,所以如何从Flask中清理它?

  3. 如果Http basic存在问题,那么保护RESTful API的最佳流行方式是什么?

1 个答案:

答案 0 :(得分:0)

  1. 您可以使用@auth.login_required包装第二条路线,也可以像{{}}那样将两者都添加到Blueprint
  2.     mod = Blueprint('secret_main', __name__, prefix='/secret_main')
        mod.before_request(auth.login_required)
    
        @mod.route('/')
        def secret_main():
            return 'This content is protected.'
    
        @mod.route('/subs')
        def secret_sub():
            return 'This content is also protected.'
    
        app.register_blueprint(mod)
    
    1. 会话过期并不是您可以使用HTTP Basic身份验证做的事情。到期意味着您希望用户在一定时间后重新进行身份验证。使用HTTP Basic,客户端会为每个请求发送实际的登录凭据。因此,用户已经在每个请求上续订会话。

    2. 使用得当,您可以依靠HTTP basic来正常工作。但是,它有weaknesses。主要问题是凭证在每次请求时都是未加密的。因此,在未加密的非HTTPS连接上,攻击者可以拦截某人的登录凭据。