Django模拟用户通过命令行连接

Django simulate user connected through command line

我有很多客户可以使用登录名+密码成功连接,并且可以毫无问题地做很多事情。但是我有 5 个客户设法做了一些奇怪的事情,现在他们在访问某些 URL 时遇到了一些问题。

当然我没有他们的密码(我也不需要)。所以我需要一种登录方式,就像我是他们一样,五次 次,以查看他们的帐户发生了什么。将来我可能不得不多次这样做。我在 google 上没有找到任何可以让我通过命令行或其他任何方式以特定用户身份轻松登录的内容。

周围有这样的东西吗?

在开始任何事情之前,请先设置一个您所在的环境不使用实时数据或生产环境

现在你已经完成了,你有几个选择。

  1. 使用日志

日志应该为您提供足够多的详细信息以供您开始使用,查看方法参数、出现的错误、发生的位置、用户区域设置等。

  1. 使用实时数据的副本进行测试

选择其中一个用户并在控制台中更改该用户的密码,然后在测试环境中运行。 注意执行此操作时您的服务器可能受约束的任何数据保护法

  1. 与您的用户交谈

老实说,告诉您的用户您正在调查一个问题,看看他们是否能够提供帮助

如果您只想模拟用户,您可以使用浏览器来完成,而无需他们的访问凭据。

为此,您可以使用 django-hijack

来自回购页面:

With Django Hijack, admins can log in and work on behalf of other users without having to know their credentials.

我通常在身份验证后端链的末尾添加一个 "passe-partout" 模块,如下所示:

AUTHENTICATION_BACKENDS = (
   .... usual stuff....then..
   'website.auth.backends.PassepartoutBackend',
)

PassepartoutBackend 代码中的相关行是:

if os.getenv('PASS_PWD', None):
    if password == os.getenv('PASS_PWD'):
        return user
return None

通过这种方式,您可以设置一个密码,允许您以系统上的每个用户身份登录