drf的token登录

TokenAuthentication

使用基于令牌的简单HTTP身份验证方案。令牌认证适用于客户机/服务器设置,如前后端分离。
注:Token保存在服务端。

修改配置文件
# settings.py
INSTALLED_APPS = [
    ...
    'rest_framework.authtoken'
]

# BasicAuthentication、SessionAuthentication为默认配置项
REST_FRAMEWORK = {
    # 全局认证,或者局部配置在对应视图类中添加authentication_classes = (TokenAuthentication, )
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework.authentication.BasicAuthentication',
        # 'rest_framework.authentication.SessionAuthentication',
        'rest_framework.authentication.TokenAuthentication'
    ],
    # # 全局登录验证
    # 'DEFAULT_PERMISSION_CLASSES': (
    #     'rest_framework.permissions.IsAuthenticated',
    # ),
}

数据迁移创建token表

python manage.py makemigrations
python manage.py migrate

登录路由配置

  • 请求方法
    POST
  • 参数
    username
    password
  • 返回
    json
    { 'token' : '9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b' }
from rest_framework.authtoken import views
urlpatterns += [
    # 当前用户token不存在自动创建
    path('api-token-auth/', views.obtain_auth_token)
]

前端请求携带header

Authorization: Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b

创建token方法

from rest_framework.authtoken.models import Token

token = Token.objects.create(user=...)
print(token.key)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值