当前位置: 首页 > 面试题库 >

Django Rest Framework令牌认证

锺离明煦
2023-03-14
问题内容

我已经阅读了《 Django Rest
Framework指南》并完成了所有教程。一切似乎都有意义,并且按应有的方式工作。我得到了如上所述的基本身份验证和会话身份验证。
http://django-rest-framework.org/api-guide

但是,我在文档的令牌认证部分苦苦挣扎,它缺少或没有教程那么深入。
http://django-rest-framework.org/api-
guide/authentication/#tokenauthentication

它说我需要为用户创建令牌,但是否说明了在models.py中的位置?

我的问题是:

有人可以为初学者更好地解释文档的令牌认证部分吗?


问题答案:

不,不在您的models.py中-
在模型方面,您所需要做的就是rest_framework.authtoken在您的中包含适当的app()INSTALLED_APPS。这将提供一个外键给用户的令牌模型。

您需要做的是确定何时以及如何创建这些令牌对象。在您的应用中,是否每个用户都会自动获得令牌?还是只有某些授权用户?或仅在他们明确要求一个时?

如果每个用户都应该始终拥有一个令牌,那么在链接到的页面上会有一段代码片段,向您展示如何设置信号以自动创建它们:

@receiver(post_save, sender=User)
def create_auth_token(sender, instance=None, created=False, **kwargs):
    if created:
        Token.objects.create(user=instance)

将此 文件放在任何位置的models.py文件中,并且在Django线程启动时将被注册)

如果仅应在特定时间创建令牌,则在您的视图代码中,您需要在适当的时间创建并保存令牌:

# View Pseudocode
from rest_framework.authtoken.models import Token

def token_request(request):
    if user_requested_token() and token_request_is_warranted():
        new_token = Token.objects.create(user=request.user)

创建(并保存)令牌后,即可用于身份验证。



 类似资料:
  • 问题内容: 我正在编写一个想同时用作Web应用程序和API提供程序的nodejs应用程序。验证用户身份后,我想为该用户分配一个令牌,以用于后续请求。这对于Web应用程序的通行证非常有用,因为我只是在会话中使用令牌对用户进行序列化和反序列化。但是,在响应API请求时,没有用于设置存储会话信息的cookie。理想情况下,护照将在会话和请求正文中都寻找令牌。有什么方法可以配置通行证来完成此任务吗? 问题

  • 最后,我实现了UserDetailsService接口

  • 我正在使用wordpress rest api的JWT认证插件进行api访问认证,但问题是< code > https://example . com/WP-JSON/jwt-auth/v1/token 正在生成不允许的错误。 例如,如果我尝试在postman中运行此url``https://example.com/wp-json/jwt-auth/v1/token`该API还需要身份验证,因为它

  • 当一个人试图使用azure AD承载令牌访问我们的系统时,这个获取和缓存资源令牌的工作流程是不存在的。 所以我的问题是,我如何使用承载令牌来启用它?如何才能像使用OpenIDConnect一样请求额外的资源令牌?是否可以使用ADAL从承载令牌获取授权代码?

  • 使用axios,我尝试为所有请求设置默认标头身份验证令牌。但默认情况下它没有被发现,并且对于任何其他api调用,“授权”没有在标头中设置。 这是一个常用文件 登录后,我像这样设置标题 但是当我调用任何其他API标头进行授权时,CountryApi.js所在的位置没有设置 Country.js是这个