Size: a a a

Django [ru] #STAY HOME

2021 June 27

NC

Nikolay Cherniy in Django [ru] #STAY HOME
а что в этом бекенде?
источник

N

Nire in Django [ru] #STAY HOME
Никто не знает
источник

Р

Рамиль in Django [ru] #STAY HOME
Всем привет! Ребят, помогите с решением проблемы. В чем суть: я когда авторизируюсь на сайте под своим пользователем создается одна сессия, но когда я выхожу из аккаунта и захожу снова, создается другая. Мне нужно, чтобы сессия которая создалась изначально, привязалась к аккаунту и при авторизации новой не возникало. Как это сделать?
источник

ib

imanuil beki in Django [ru] #STAY HOME
from django.contrib.auth import get_user_model
from django.contrib.auth.backends import ModelBackend as BaseModelBackend
from django.db.models import Q
from .settings import manager_apps, manager_permissions


UserModel = get_user_model()


class ModelBackend(BaseModelBackend):
   def authenticate(self, request, **kwargs):
       username = kwargs.get(UserModel.USERNAME_FIELD) or kwargs.get('username') or kwargs.get('login')
       password = kwargs['password']
       if not username:
           return None
       try:
           user = UserModel.objects.get(Q(email__iexact=username) | Q(phone=username))
       except UserModel.DoesNotExist:
           pass
       else:
           if user.password is not None and user.check_password(password) and self.user_can_authenticate(user):
               return user

   def has_perm(self, user_obj, perm, obj=None):
       return user_obj.is_active

   def has_module_perms(self, user_obj, app_label):
       return user_obj.is_active
источник

N

Nire in Django [ru] #STAY HOME
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
такой объем кода на пасту, сюда не нужно
источник

DT

Dan Tyan in Django [ru] #STAY HOME
во первых бек для drf прописывается в конфиге drf

во вторых ModelBackend авторизует по логину паролю
источник

ib

imanuil beki in Django [ru] #STAY HOME
Вход по логину и паролю мне приходит json с токенами но когда я использую то request.user говорит то что AnonimousUser и ендпоинт не работает выдает
"message": "You do not have permission to perform this action.",
           "code": "permission_denied"
источник

DT

Dan Tyan in Django [ru] #STAY HOME
потому что джанго не знает что делать с этим токеном
источник

N

Nire in Django [ru] #STAY HOME
Ну смотри permissions
источник

DT

Dan Tyan in Django [ru] #STAY HOME
покажи целиком конфиг drf
источник

ib

imanuil beki in Django [ru] #STAY HOME
settings
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
ну если у тебя нет нужной настройки, естественно ты анонимный пользователь
источник

DT

Dan Tyan in Django [ru] #STAY HOME
да в settings
источник

ib

imanuil beki in Django [ru] #STAY HOME
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
REST_FRAMEWORK = {
   "DEFAULT_AUTHENTICATION_CLASSES": (
       "rest_framework.authentication.TokenAuthentication",
   ),
}
источник

DT

Dan Tyan in Django [ru] #STAY HOME
'users.authentication.JWTSessionAuthentication',

тут что ?
источник

ib

imanuil beki in Django [ru] #STAY HOME
источник

ib

imanuil beki in Django [ru] #STAY HOME
я тут посмотрел у меня в settings.py почему то горит dotenv
источник

ib

imanuil beki in Django [ru] #STAY HOME
может в этом и причина
источник