使用授权头(Authorization header)登录

Caution

该方法将会被弃用,使用下一节的 request_loader 来代替。

有些时候你要支持使用 Authorization 头的基本认证登录,比如 API 请求。为了支持通过头登录你需要提供一个 header_loader 回调。这个回调和 user_loader 回调作用一样,只是它接受一个 HTTP 头(Authorization)而不是用户 id。例如:

  1. @login_manager.header_loader
  2. def load_user_from_header(header_val):
  3. header_val = header_val.replace('Basic ', '', 1)
  4. try:
  5. header_val = base64.b64decode(header_val)
  6. except TypeError:
  7. pass
  8. return User.query.filter_by(api_key=header_val).first()

默认情况下 Authorization 的值传给 header_loader 回调。你可以使用 AUTH_HEADER_NAME 配置来修改使用的 HTTP 头(可以不使用 Authorization,使用 Token)。