Vue + Django 2.0.6 学习笔记 7.1 drf的token登录

DRF 使用的是TokenAuthentication 以前用template渲染的哪种登录方式是用SessionAuthentication 一般浏览器是采用这种的。但是前后端分离的话因为是跨站的。所以几乎不采用Session的方式 。

要杂用呢?

首先要把这种认证方式加入到应用中:

settings.py:

REST_FRAMEWORK = {
# 这条是之前的
    'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',

# 这条是新加的
    'DEFAULT_AUTHENTICATION_CLASSES': (
            'rest_framework.authentication.BasicAuthentication',
            'rest_framework.authentication.SessionAuthentication',
            'rest_framework.authentication.TokenAuthentication',
        )
}

INSTALLED_APPS = [
    'rest_framework.authtoken'
]

urls.py

from rest_framework.authtoken import views


urlpatterns = [
    path('api-token-auth/', views.obtain_auth_token)
]

然后makemigration和migrate

然后数据库中就有了这个表

表中的数据刚开始是空的

因为之前创建的用户没有经过token认证创建key所以是空的。 那咋办

通过postman来发送用户名和密码 让TokenAuthentication自动创建key

点击send之后在软件下方会返回token的key值

这时候再去查数据库表就有了该值。

 

原理:

urls.py:

from rest_framework.authtoken import views

path('api-token-auth/', views.obtain_auth_token)

# 通过rest_framework.authtoken.views.obtain_auth_token 找到对应类:

obtain_auth_token = ObtainAuthToken.as_view()

#然后找到ObtainAuthToken这个类

看下面那个post请求 它接收数据后进行校验(serializer_class = AuthTokenSerializer 这是校验对象)如果校验账号密码没问题则查询是否有token, 没有的话就创建一个token (token, created = Token.objects.get_or_create(user=user))

7.1 完结

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@凌晨三点半

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值