从0到1实现自动化测试平台(四):如何校验token的有效性

从0到1实现自动化测试平台(四):如何校验token的有效性_第1张图片

一、前言

上一篇我们实现了用户登录的验证并返回token。那如何去校验请求的token(校验请求接口的用户是否有效)是否有效呢?这篇内容将为你讲解通过DRF,如何实现token的验证。


二、token的验证使用

1. 如何校验token是否有效

1)配置校验方式

settings.py文件中,我们加入下面的代码将用户验证改为token验证:

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework.authentication.TokenAuthentication',
    ]
}
复制代码

2)通过restframework提供的permission_classes来验证用户

1.在用户模块下的views.py中引入api_viewpermission_classes以及权限IsAuthenticated:

from rest_framework.decorators import api_view, permission_classes
from rest_framework.permissions import IsAuthenticated
复制代码

2.然后在需要的视图方法上加入该装饰器即可 ,比如下面是对登录成功的用户做校验:

@api_view(['POST'])  
@permission_classes((IsAuthenticated,))
def check_token(request):
    """
    验证token是否有效
    """
    return Response(data={'msg': 'token有效!'})
复制代码

另外permission_classes还提供了对用户权限校验的方法(很基础),比如只允许管理员访问:

@api_view(['POST'])
@permission_classes((IsAdminUser,))
def check_token(request):
    """
    验证token是否有效
    """
    return Response(data={'msg': 'token有效!'})
复制代码

还有下面这些可供选择:

AllowAny(所有人都可访问,未携带token也可,游客权限)IsAuthenticatedOrReadOnly(通过验证的或者是只读接口)


当然,我们还可以自定义权限验证,后面的章节会讲到。


2. 携带token进行接口请求

我们直接在请求头(header)中指定Authorization,值为Token 具体的token即可:


四. 总结

至此,我们已经完成了用户的token验证。能够在需要鉴权的接口中,通过加入装饰器的方式来鉴定是否是有效用户的访问请求,实现起来非常的方便简单。 当然还有更简单的方式,我们可以配置DRF的中间件REST_FRAMEWORK来对全局接口进行设置,这样就不需要每个接口都添加一次了,如下图所示:

REST_FRAMEWORK = {
    # 下面的配置就是配置全局的请求校验
    'DEFAULT_PERMISSION_CLASSES': (
        'rest_framework.permissions.IsAuthenticatedy',
    ),
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'LimApi.limAuthentication.LimTokenAuthentication',
    ],
    'DEFAULT_FILTER_BACKENDS': [
        'django_filters.rest_framework.DjangoFilterBackend', 'rest_framework.filters.OrderingFilter',
        'LimApi.limFilterBackends.QueryOnlyFields'],
    'DEFAULT_PAGINATION_CLASS': 'LimApi.limPagination.StandardPageNumberPagination',
    'EXCEPTION_HANDLER': 'LimApi.limExceptionHandler.response_exception_handler'
}
复制代码

这样的设置减少了大量重复性的代码,只能说太香了。 下一章将通过视图的方式来完成用户的增删改查接口。

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

下方这份完整的软件测试视频学习教程已经上传CSDN官方认证的二维码,朋友们如果需要可以自行免费领取 【保证100%免费】

这些资料,对于想进阶【自动化测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等配套学习资源免费分享

你可能感兴趣的:(软件测试,自动化测试,技术分享,测试工程师,自动化测试,软件测试,python,自动化测试平台开发)