fei_middlewares package¶
Submodules¶
fei_middlewares.data_initial module¶
这个middleware用于初始化一些模型
例如,注册用户一开始只有基本的信息:username/first_name/last_name/email等, 其它 UserExtra, UserAsset等等都没有数据,或者某些模型是后来增加的,也没有专门的初始化 这个middleware用于判断用户的某些数据是否已初始化,如果没有则进行初始化,增加相应的记录 例:当用户访问的时候,检测用户是否有UserAsset记录,如果没有,则为该用户初始化,balance=0
fei_middlewares.drf_token_info module¶
检查用户是已经生成了token,drf需要token才能认证用户
-
fei_middlewares.drf_token_info.drf_user_info(get_response)[源代码]¶ log用户的id和token
如果用户认证成功,打印出用户id和token;否则显示failed信息 如果从浏览器访问,即使是已登录用户也会失败,因为浏览器用户是通过session认证的
客户端直接访问的用户提供了 ‘Authorization: Token 954… ‘ 这个header才能被drf认证 可以用curl/postman等直接模拟一个客户端的访问: curl -X GET -H ‘Authorization: Token <此处是一个有效的token>’ http://demo.hhxx.me/v2/
fei_middlewares.generate_token module¶
为当前系统中已有的用户创建token
仅作为一个middleware的示例 实际上为已有用户创建token可以直接在django shell里进行一次操作
fei_middlewares.headers_info module¶
检查request / response 的headers 用于debug
-
fei_middlewares.headers_info.request_headers(get_response)[源代码]¶ - 下面这几个常规的headers不显示:
Content-Length —> Referer —> http://127.0.0.1:8000/v2/ Connection —> keep-alive Host —> 127.0.0.1:8000 Upgrade-Insecure-Requests —> 1
- 下面这几个headers会被显示
Content-Type —> text/plain Cookie —> csrftoken=COuMh90BlYq4dOSxOq …; sessionid=1h8ntp1x … Accept —> text/html,application/xht … User-Agent —> Mozilla/5.0 (Macintosh; Intel Mac OS X 1 … Accept-Language —> en-us Accept-Encoding —> gzip, deflate request.user.id —> 25
fei_middlewares.logging_user module¶
记录当前访问的用户
fei_middlewares.user_filter module¶
禁示测试用户改密码
Module contents¶
Custom middleware