我正在使用django-rest-framework作为REST API。此外,对于JSON Web令牌身份验证,我使用的是django-rest-framework-jwt。成功登录后,将为用户提供令牌。我已经找到了verify a token如何使用api调用,但有没有办法在视图中验证令牌并获取该令牌的用户,类似于request.user?
我需要它在使用django-channels时验证消费者内部:
def ws_connect(message):
params = parse_qs(message.content["query_string"])
if b"token" in params:
token = params[b"token"][0]
# validate the token and get the user object
# create an object with that user
答案 0 :(得分:11)
我正要验证令牌并通过导入VerifyJSONWebTokenSerializer类来获取用户。
Button loginButton = (Button) findViewById(R.id.login_button);
Typeface tf = Typeface.createFromAsset(getAssets(), "Lato-Regular.ttf");
loginButton.setTypeface(tf);
希望这有助于像我这样的身体。
答案 1 :(得分:0)
使用TokenBackend
代替VerifyJSONWebTokenSerializer
from rest_framework_simplejwt.backends import TokenBackend
token = request.META.get('HTTP_AUTHORIZATION', " ").split(' ')[1]
data = {'token': token}
try:
valid_data = TokenBackend(algorithm='HS256').decode(token,verify=False)
user = valid_data['user']
request.user = user
except ValidationError as v:
print("validation error", v)