繁体   English   中英

如何连接自己作为其他用户?

[英]How can I connect myself as an other user?

您好,我是django项目的开发人员,我必须检查我的开发是否正常。

为此,我必须以用户身份连接自己,但我只有他的电子邮件而不是他的密码。 我在table User找到该电子邮件和密码,但是密码以此开头: pbkdf2_sha256 ...

所以我猜密码是加密的。 有没有一种更简单的方法可以做到这一点?

谢谢您的帮助 !

根据创建新用户时对密码进行哈希处理的方式,您可以将用户的哈希值替换为另一个哈希值:

  1. 进入数据库并复制您要登录的用户的密码哈希
  2. 将此哈希存储在某处(您将需要它来还原更改)
  3. 复制另一个用户(您知道密码的用户)的哈希
  4. 粘贴此用户的哈希值代替您要登录的用户的哈希值

如果散列的生成方式相同,则可以使用其他用户的密码登录。

然后,完成后,还原数据库中的更改。

希望能帮助到你。

django中的密码是一种加密方式,因此无法解密,因此无法从数据库的用户表中查找任何用户的实际密码。
如果您想代表另一个用户登录而不必知道他们的密码,则可以编写一些复杂的代码来实现该目的,或者使用第三方程序包。
django-hijack看起来不错。 它的文档对如何使用它有很好的解释,因此在这里我将不做介绍。 如果您不喜欢该软件包,则可以在djangopackages上看到用于此目的的软件包列表,然后选择所需的软件包。

django-hijack用法:

首先完成安装安装后步骤。

  • /hijack/<user_id>发出发布请求,其中<user_id>是表user的列id 如果您尚未更新模型用户的字段ID,则该字段ID将为1、2、3,...。因此,该网址将类似于/hijack/1/

  • 如果要通过用户名劫持,请向/hijack/username/<username>发出发布请求。 例如。 /hijack/username/awesome_username/

  • 如果您想通过/hijack/email/<user email>/进行劫持,请向/hijack/email/<user email>/发出发帖请求。 例如。 /hijack/email/awesome@email.com/

在以超级用户身份向这些网址之一发出发布请求后,您将被重定向到HIJACK_LOGIN_REDIRECT_URL中指定的HIJACK_LOGIN_REDIRECT_URL


我不确定django-hijack是否可以在python 3或更高版本的Django上使用。 如果不起作用,请尝试django-impersonate ,它以相似的方式提供相同的功能,并正式支持python 3.6+和django 1.11+

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM