Я размещаю сервер Ubuntu для django приложения с djangorestframework с apache веб-сервером. У меня проблема с аутентификацией токена. Все API хорошо работает на локальном хосте, но не работает на сервере. Этот ответ пришел при обращении к серверу.
{"detail":"Authentication credentials were not provided."}
Кто-то сказал мне изменить свой конфигурационный файл и добавить эту строку в конфигурационный файл, потому что apache использует собственную аутентификацию токена по умолчанию.
WSGIPassAuthorization On
Итак, я добавил эту строку в мой конфигурационный файл и после того же ответа приходит. пожалуйста, скажите мне, что делать дальше?
views.py
class ManageUserView(generics.RetrieveUpdateAPIView):
serializer_class = serializers.UserSerializer
authentication_classes = (TokenAuthentication,)
permission_classes = (IsAuthenticated,)
def get_object(self):
return self.request.user
Serializers.py
class UserSerializer(serializers.ModelSerializer):
""" Serializer for the users object """
class Meta:
model = get_user_model()
fields = ('id', 'email', 'password', 'user_type')
extra_kwargs = {'password': {'write_only': True, 'min_length': 8}}
def create(self, validated_data):
""" Create a new user with encrypted password and return it"""
print(validated_data)
return get_user_model().objects.create_type_user(**validated_data)
def update(self, instance, validated_data):
""" Update a user, setting the password correctly and return it """
password = validated_data.pop('password', None)
user = super().update(instance, validated_data)
if password:
user.set_password(password)
user.save()
return user
site.conf
<VirtualHost *:80>
ServerName www.shabber.tech
ServerAdmin official.kisaziaraat@gmail.com
ServerAlias shabber.tech
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /static /home/shabber/apna/static
<Directory /home/shabber/apna/static>
Require all granted
</Directory>
Alias /media /home/shabber/apna/media
<Directory /home/shabber/apna/media>
Require all granted
</Directory>
<Directory /home/shabber/apna/apna>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIScriptAlias / /home/shabber/apna/apna/wsgi.py
WSGIDaemonProcess apna_app python-path=/home/shabber/apna python-home=/home/shabber/apna/venv
WSGIProcessGroup apna_app
WSGIPassAuthorization On
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet