为了保护这个资源,我们将使用 HTTP 基本身份认证,但是不是自己编写完整的代码来实现它,而是让 Flask-HTTPAuth 扩展来为我们做。
使用 Flask-HTTPAuth,通过添加 login_required 装饰器可以要求相应的路由必须进行认证:
但是,Flask-HTTPAuth 需要给予更多的信息来验证用户的认证,当然 Flask-HTTPAuth 有着许多的选项,它取决于应用程序实现的安全级别。
verify_password 回调函数的实现如下:
这里是用 curl 请求只允许注册用户获取的保护资源:
如果登录失败的话,会得到下面的内容:
这里我再次重申在实际的应用中,请使用安全的 HTTP。