大家好,我在我的项目中配置了令牌身份验证,当我发布用户名和密码的 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__'
1条答案
按热度按时间yyyllmsg1#
🦋 蝴蝶🦋
如果你正在使用post man,你不应该在params部分插入标记,这就是为什么当你输入载体和标记时,它会被输入到顶部的url中。
您应该做的是在
postman
的header部分输入Bearer和令牌,然后您的代码就可以正常工作。