django令牌认证无法正常工作

3wabscal  于 2022-12-24  发布在  Go
关注(0)|答案(1)|浏览(195)

大家好,我在我的项目中配置了令牌身份验证,当我发布用户名和密码的 Postman 令牌正在生成,但当我添加此令牌访问我的API响应,然后得到[未提供身份验证凭据。]

    • 型号. py**
from rest_framework.authtoken.models import Token

@receiver(post_save, sender=settings.AUTH_USER_MODEL)
def create_auth_token(sender, instance=None, created=False, **kwargs):
    if created:
        Token.objects.create(user=instance)
    • 设置. py**
INSTALLED_APPS = [
'rest_framework.authtoken',
]

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'api.authentication.TokenAuthentication',
        'rest_framework.authentication.SessionAuthentication',
        'rest_framework.authentication.TokenAuthentication'
    ),
    'DEFAULT_RENDERER_CLASSES': (
        'rest_framework.renderers.JSONRenderer',
        'rest_framework.renderers.BrowsableAPIRenderer',
        'rest_framework_datatables.renderers.DatatablesRenderer',
    ),
    'DEFAULT_FILTER_BACKENDS': (
        'rest_framework_datatables.filters.DatatablesFilterBackend',
    ),
    'DEFAULT_PAGINATION_CLASS': 'rest_framework_datatables.pagination.DatatablesPageNumberPagination',
    'PAGE_SIZE': 100,
}
    • 网址. py**
from rest_framework.authtoken.views import obtain_auth_token

router = routers.DefaultRouter()
router.register(r'api/hisaabApi',views.HisaabViewSet)
urlpatterns = [
    path('login',obtain_auth_token,name="login")
]
  • #用于响应的API*
    • 查看次数. py**
class HisaabViewSet(viewsets.ModelViewSet):
    permission_classes = (IsAuthenticated,)
    queryset=WeeklyData.objects.all()
    serializer_class=HisaabSerializer
    • 序列化程序. py**
class HisaabSerializer(serializers.ModelSerializer):
    class Meta:
        model = WeeklyData
        fields = '__all__'
yyyllmsg

yyyllmsg1#

🦋 蝴蝶🦋
如果你正在使用post man,你不应该在params部分插入标记,这就是为什么当你输入载体和标记时,它会被输入到顶部的url中。

您应该做的是在postmanheader部分输入Bearer和令牌,然后您的代码就可以正常工作。

相关问题