fei_middlewares.drf_token_info 源代码

"""检查用户是已经生成了token,drf需要token才能认证用户
"""
from rest_framework import authentication

[文档]def 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/ """ def wrapper(request): result = get_response(request) try: user, token = authentication.TokenAuthentication().authenticate(request) print(f'-- drf_user_info --'.ljust(30), f' : ID /User / Token] ---> {user.id} / {user} / {token}') except: print(f'-- drf_user_info --'.ljust(30), f'AUTH FAILED!') return result return wrapper