2014-11-06 11:15:54 +03:00
|
|
|
from six import string_types
|
2015-11-19 11:38:57 +03:00
|
|
|
from importlib import import_module
|
2014-10-09 13:41:52 +04:00
|
|
|
|
|
|
|
|
|
|
|
def import_callable(path_or_callable):
|
|
|
|
if hasattr(path_or_callable, '__call__'):
|
|
|
|
return path_or_callable
|
|
|
|
else:
|
2014-11-06 11:15:54 +03:00
|
|
|
assert isinstance(path_or_callable, string_types)
|
2014-10-09 13:41:52 +04:00
|
|
|
package, attr = path_or_callable.rsplit('.', 1)
|
|
|
|
return getattr(import_module(package), attr)
|
2016-01-04 20:45:33 +03:00
|
|
|
|
2016-01-01 00:10:52 +03:00
|
|
|
|
2016-01-08 00:45:28 +03:00
|
|
|
def default_create_token(token_model, user, serializer):
|
2016-01-01 00:10:52 +03:00
|
|
|
token, _ = token_model.objects.get_or_create(user=user)
|
|
|
|
return token
|
2016-02-16 07:35:32 +03:00
|
|
|
|
2016-03-01 14:51:01 +03:00
|
|
|
|
2016-01-04 20:45:33 +03:00
|
|
|
def jwt_encode(user):
|
2016-03-01 14:51:01 +03:00
|
|
|
try:
|
2016-01-04 20:45:33 +03:00
|
|
|
from rest_framework_jwt.settings import api_settings
|
|
|
|
except ImportError:
|
|
|
|
raise ImportError('rest_framework_jwt needs to be installed')
|
|
|
|
|
|
|
|
jwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLER
|
|
|
|
jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER
|
|
|
|
|
|
|
|
payload = jwt_payload_handler(user)
|
2016-02-16 08:49:41 +03:00
|
|
|
return jwt_encode_handler(payload)
|