У меня есть приложение Django. Когда вы входите в систему как пользователь admin, я хочу иметь возможность передавать секретный параметр в URL-адрес и вести себя на всем сайте так, как если бы я был другим пользователем.
Скажем, у меня есть URL /my-profile/
, который показывает текущий зарегистрированный профиль пользователя. Я хочу иметь возможность сделать что-то вроде /my-profile/?__user_id=123
и иметь базовое представление, полагая, что я на самом деле являюсь пользователем с ID 123 (таким образом, отображаю этот профиль пользователя).
Зачем мне это нужно?
Просто потому, что намного проще воспроизводить определенные ошибки, которые появляются только в одной учетной записи пользователя.
Мои вопросы:
-
Каким будет самый простой способ реализовать что-то вроде этого?
-
Есть ли какая-либо озабоченность по поводу безопасности, которую я должен иметь в виду при этом? Обратите внимание, что я (очевидно) хочу иметь эту функцию только для пользователей-администраторов, и у наших пользователей-администраторов есть полный доступ к исходному коду, базе данных и т.д., Так что это не действительно "бэкдор"; он просто упрощает доступ к учетной записи пользователя.