问题标签 [django-authentication]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
6396 浏览

django - 如何在南迁移中访问身份验证用户的 User.objects.create_user(...)?

我没有使用 django 的 auth 模块,而是使用了我自己的并且已经很后悔了。

为了纠正这种情况,我正在尝试将数据从我的用户模型迁移到 django.auth.models.User。

我创建了如下数据迁移:

当我运行迁移时,我收到此错误(回溯):

经过进一步调查,我发现Manager所提到的那个是south.orm.NoDryRunManager解释错误的时间。

现在,我什至需要create_user创建一个django.contrib.auth可以理解的密码哈希。

说了这么多,我该怎么做呢?考虑到我所在的洞,最优雅的解决方案是什么?!

提前致谢。

更新 1

正如stevejalim所建议的,我尝试使用User'sset_password(...)如下:

然而,这个错误失败了:

我确实在南文档中找到了一个提示,其中指出:

South 不会冻结模型的每个方面。例如,它不保留新的管理器或自定义模型方法,因为这些需要序列化运行这些方法的 python 代码(以及依赖的代码,等等)。

如果您想在迁移中使用自定义方法,则必须将代码复制进去,包括它所依赖的任何导入。但是请记住,对于您添加的每个导入,您都承诺在迁移期间保持该导入有效。

我想问题仍然存在,最好/最安全的方法是什么?把方法复制set_password(...)过来?为我创建一个散列密码的函数?还有其他想法吗?

0 投票
1 回答
439 浏览

django - Django Piston 问题 - “oauth_user_auth() 只需要 1 个参数(给定 2 个)”

我在设置 Django Piston 时遇到了一些问题。我已经设法通过此处显示的 oauth_client.py 示例(http://github.com/clemesha/django-piston-oauth-example)生成身份验证。当我运行“python oauth_client.py”时,我被带到http://localhost:8000/api/oauth/authorize/?oauth_token=8wm33jeWR92BpsrHjs然后我勾选一个框以确认访问,然后提交表单。

此时我遇到了“oauth_user_auth() 恰好需要 1 个参数(给定 2 个)”错误。我敢肯定,简单的答案是 oauth_user_auth 方法不接受一个参数,但要删除该字符,我必须编辑一个活塞文件,我对此有点沉默。有没有其他人遇到过这个问题?

0 投票
1 回答
21769 浏览

django - Django 身份验证 - 错误的重定向 url 到登录页面

当用户未登录时,我仅尝试为经过身份验证的用户输入站点区域,我应该使用设置重定向到我的登录站点,?next=这里是我的 LOGIN_REDIRECT_URL。但不是/users/login在我的地址栏中/accounts/login显示。我应该改变什么以获得正确的网址?

设置:

项目的网址:

帐户应用程序 urls.py :

和帐户 auth_urls.py(它们只是 contrib.auth 的 url):

如果我应该粘贴更多,请告诉我。

0 投票
2 回答
1699 浏览

django - Django auth:如果他的 IP 与原始 IP 不匹配(他登录的那个),如何禁止用户会话

如果用户的 IP 与他登录时使用的 IP 不同,如何配置或修改身份验证以禁止用户会话?我真的尽我所能保护我的 Django 站点免受 XSS 攻击。但我永远不能确定我涵盖了所有的基础。如果最坏的情况发生并且有人能够在我的网站中放置一些 XSS,至少这可以防止他劫持现有的用户会话。

0 投票
2 回答
1792 浏览

django - 在 Django 管理员中激活用户时发送电子邮件

我即将创建一个监控注册的网站,只允许某些人注册。毫无疑问,尽管我在注册表上方写了任何文字,但仍有一些不合适的人会注册,所以我们要适度。

注册后django.contrib.auth User,将创建一个和个人资料,并向版主发送一封电子邮件。版主将登录 Django 管理站点,检查他们是否被允许注册并将其帐户标记为活动的。如果他们是一些试图溜进来的恶棍,该帐户将被删除。

我将使用 recaptcha 来尝试停止自动尝试。

我想在帐户被激活或删除时发送一封电子邮件,让帐户持有人知道他们的帐户发生了什么,他们可以登录,或者让他们知道我们知道他们在做什么,他们应该别傻了。

我怀疑这与信号有关,但坦率地说,鉴于我使用的是从django.contrib.auth.

任何提示、线索或代码都被亲切地接受。

0 投票
1 回答
400 浏览

django - Django:如何跟踪线性(但灵活)的项目管理工作流程?

我正在 Django 中开发一个项目管理应用程序,它需要一个涉及不同用户组的线性响应过程(如在 Django auth Groups 中)。响应过程中的每个步骤都有多个响应选项(大多数选项是该步骤独有的),并分配给特定组中的用户。该过程的下一步由用户的响应决定,有时可能需要向项目成员之一索取额外信息。

问题是我当前的实现看起来相当繁琐,我确信有更好的方法来跟踪响应过程。我希望有人可以对更强大的解决方案提供一些见解。

作为一个简单的示例,考虑一个具有以下用户组的项目:销售代表、销售经理和项目经理。这些模型目前看起来像这样:

以下是该过程如何工作的简单概述:

  1. 销售代表创建一个新项目并将其分配给销售经理
  2. 向销售经理提供以下选项:
    (a) 批准项目或
    (b) 向销售代表索取更多信息
  3. 如果项目获得批准,分配给项目经理,项目经理有以下选择:
    (a) 开始项目
    (b) 拒绝项目
    (c) 向销售代表或销售经理索取更多信息
  4. 如果向用户请求更多信息,项目将分配给该用户,他们只需要提供一个文本框响应。但是,一旦收到他们的响应,项目需要返回到上一步(这就是我跟踪上面的 current_step 和 previous_step 的原因)。在此示例中,如果项目经理向销售代表请求更多信息,则一旦销售代表做出响应,项目应被分配回项目经理,并使用与之前相同的响应选项(开始、拒绝、请求更多信息)。

整个过程大约有 10 个左右这样的步骤。

更复杂的是,我还需要能够显示为每个步骤选择的响应。例如,如果销售经理批准该项目,则应显示“销售经理批准该项目”以及他们可能拥有的任何评论。该模型如下所示:

现在每个响应动作的逻辑都被硬编码在视图中,并且一个步骤和另一个步骤之间没有正式的关系。我觉得应该使用更好的模型结构或数据结构来跟踪这个工作流程,但是我使用当前系统已经很长时间了,以至于我很难以不同的方式思考它。任何见解或灵感将不胜感激!如果我需要澄清任何事情,请告诉我。

0 投票
3 回答
1463 浏览

django - Django 和通用访问卡 (CAC)

计划用 Python 编写一个 Web 应用程序,Django 是框架的主要竞争者。

一项要求是 CAC 访问,无需手动输入用户名和密码。据我所知,CAC 访问不是 Django 包含的“电池”的一部分。

作为一个整体框架(不一定是一个坏属性),一旦你修改了核心,Django 就有一个高维护的代表。我可以轻松地将 CAC 访问权限添加到 Django 站点吗?以后可以轻松维护吗?

或者也许我们应该考虑一个不同的 Python 框架?

仅供参考..关于 CAC 访问链接的有趣演示

0 投票
1 回答
785 浏览

django - Django 身份验证后端

我如何在服务器端知道确定用户的身份验证后端是什么?

0 投票
3 回答
4255 浏览

python - Django 3rd 方认证系统

我正在考虑用于登录(新/旧)用户的第三部分身份验证系统。就像 StackOverflow 如何验证它的用户一样。这个方案很好,因为它让我不必从我身边进行身份验证。我需要这个 -

  1. 使用 Google、Facebook、Twitter、Yahoo、OpenID 身份验证系统登录。
  2. 提供与默认 django 身份验证系统相同的用户登录功能,即 @login_required 装饰器应该可以工作

似乎有一些 Django 应用程序声称可以解决这个问题。哪些好?前任。Django-SocialAuth , django-openid-auth

0 投票
1 回答
1384 浏览

django - 删除 Django User 模型的 30 个字符限制的最简单方法是什么?

可能重复:
django 的 auth_user.username 可以是 varchar(75) 吗?那怎么可能呢?

我继承了一个使用自定义无表单身份验证后端的 Django 应用程序。django.contrib.auth.models.User它通过 SQL hack在 30 个字符限制附近工作ALTER TABLE auth_user MODIFY COLUMN username varchar(90);,这当然只对数据库有效,但对表单无效。由于我正在尝试从包括 SQL 在内的代码中删除所有的 hack,所以我正在寻找一种适当的方法来消除该限制。您如何建议删除它?