Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在Django token Auth中创建自定义令牌_Python_Django_Django Rest Framework_Django Authentication - Fatal编程技术网

Python 如何在Django token Auth中创建自定义令牌

Python 如何在Django token Auth中创建自定义令牌,python,django,django-rest-framework,django-authentication,Python,Django,Django Rest Framework,Django Authentication,我们可以在Django中的令牌身份验证中创建自定义令牌吗 目前,我们正在创建一个超级用户,并为该超级用户生成一个令牌。但是有几个环境,我们希望对所有环境保持相同的令牌。因此,需要一个自定义令牌 例如,如果我们使用令牌身份验证创建令牌 REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': [ 'rest_framework.authentication.TokenAuthentication', ], } 我们首

我们可以在Django中的令牌身份验证中创建自定义令牌吗

目前,我们正在创建一个超级用户,并为该超级用户生成一个令牌。但是有几个环境,我们希望对所有环境保持相同的令牌。因此,需要一个自定义令牌

例如,如果我们使用令牌身份验证创建令牌

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework.authentication.TokenAuthentication',
    ],
}
我们首先创建一个超级用户,然后使用django admin创建一个令牌

Authorization:Token 8b000baba908hh7cf0618d492896e7b4bd6c9ce3

在这里,我想定义我自己的令牌,它将保存在同一个表中。

如果我正确理解您的问题,您希望在许多环境(不同的服务器)中为超级用户使用相同的令牌吗?如果这是真的,那么您可以尝试覆盖自动创建令牌的方法

如何生成令牌:

DRF身份验证令牌代码

基于上述内容,示例代码可以(未测试):

@receiver(post\u save,sender=settings.AUTH\u USER\u MODEL)
def create_auth_令牌(发送方,实例=None,created=False,**kwargs):
如果创建:
如果instance.u是超级用户:
Token.objects.create(user=instance,key=“superuser\u key”)
其他:
Token.objects.create(user=instance)#使用生成的密钥

重要信息请不要在代码中硬编码令牌,您可以使用例如python decouple package将其作为env变量处理。

类似JWT(?)的东西,我猜不类似JWT,在JWT中,用户首先请求令牌。我想让代币永久保存。如果有帮助的话,我已经更新了描述@从技术上讲,如果我们“窃取”rest_框架令牌的方法,则生成自己的令牌,并将其保存在您的表中。然后根据其后端创建自定义后端。可以吗?