我已经阅读了一些关于Http Basic身份验证的帖子。例如,http://blog.miguelgrinberg.com/post/restful-authentication-with-flask。我提出问题。
如果需要登录app.route('/ secret_main'),那么如何将app.route('/ secret_main / subs')包括在内?
因为Http basic不能过期,所以如何从Flask中清理它?
如果Http basic存在问题,那么保护RESTful API的最佳流行方式是什么?
答案 0 :(得分:0)
@auth.login_required
包装第二条路线,也可以像{{}}那样将两者都添加到Blueprint: 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)
会话过期并不是您可以使用HTTP Basic身份验证做的事情。到期意味着您希望用户在一定时间后重新进行身份验证。使用HTTP Basic,客户端会为每个请求发送实际的登录凭据。因此,用户已经在每个请求上续订会话。
使用得当,您可以依靠HTTP basic来正常工作。但是,它有weaknesses。主要问题是凭证在每次请求时都是未加密的。因此,在未加密的非HTTPS连接上,攻击者可以拦截某人的登录凭据。