Python 如何在Django token Auth中创建自定义令牌
我们可以在Django中的令牌身份验证中创建自定义令牌吗 目前,我们正在创建一个超级用户,并为该超级用户生成一个令牌。但是有几个环境,我们希望对所有环境保持相同的令牌。因此,需要一个自定义令牌 例如,如果我们使用令牌身份验证创建令牌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', ], } 我们首
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_框架令牌的方法,则生成自己的令牌,并将其保存在您的表中。然后根据其后端创建自定义后端。可以吗?