问题标签 [login-required]

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 投票
1 回答
1061 浏览

django - Django:在其他装饰器中重用 login_required 装饰器

根据我同意的https://stackoverflow.com/a/8715790/210481中的评论之一,如果一个依赖于另一个,我们应该避免使用多个装饰器。

因此,在示例中,如果我们有一个用于活动用户的装饰器“active_required”,我们不应该在同一个视图上同时使用 active_required 和 login_required。

我们应该在“active_required”中以某种方式“调用”“login_required”装饰器。

是否可以使用 django 附带的标准“login_required”装饰器来做到这一点?

我的要求是: 1)如果用户未通过身份验证,我应该将他重定向到 LOGIN_URL 2)如果用户通过身份验证(通过 login_required)但未激活,我应该将他重定向到一个页面以“重新激活”他帐户 3) 如果用户已通过身份验证并处于活动状态,则用户可以访问视图

提前致谢

0 投票
1 回答
7360 浏览

django - 为什么我需要用@method_decorator 装饰login_required 装饰器

我正在尝试了解在此博客文章中发布的 mixins 的代码。

这些 mixin 从 mixins 中调用login_required装饰器django.contrib.auth.decorators,但它们是由method_decoratorfrom装饰的django.utils.decorators。在下面的示例代码中,我不明白为什么我需要装饰login_required装饰器。

method_decorator装饰器说它用于“将函数装饰器转换为方法装饰器”但是在测试代码中,即使没有 method_decorator,我也可以使用我的装饰器。

我的装饰师

我的类直接调用上述装饰器产生的结果与调用装饰器的结果相同method_decorator

0 投票
4 回答
3347 浏览

django - 当用户退出 Chrome 时,Django @login_required 视图仍会显示

::编辑::

@cache_control(no_cache=True, must_revalidate=True, no_store=True)FTW!!!!

Cache-Control: no-cache, no-store, must-revalidate 成功了。花了几个 IRC chan 并环顾四周,但最后我让它工作了。

::编辑::

我有一个视图,我在其中设置了@login_required,并且大部分情况下它是安全的,但是如果您查看了视图,然后注销并点击浏览器中的后退按钮,您可以再次查看内容而不会被询问登录。尽管如果您刷新页面,服务器将重定向您。

我的暂停是一个缓存问题,也许我需要告诉 chrome 不要将其存储在历史记录中。

例如,如果您查看发票然后注销,您可以通过在您的历史记录中选择该页面再次查看发票。

我已经尝试过这个问题,没有问题。firefox 要求您登录后端,所以它一定是浏览器问题。

0 投票
2 回答
626 浏览

python - 如何将继续 url 传递给登录所需的装饰器

我有login_required如下装饰器:

现在我有一个Page(由单独的 呈现Handler),我可以选择让用户上传可以由来宾和用户查看的图像。一旦表单被发布,它就会由另一个Handler使用@login_required装饰器的人处理。

我想要实现的是传递一个continue_url变量,我可以在check_login重定向时在函数中使用该变量,以便用户在登录后被重定向回同一页面。

0 投票
1 回答
1711 浏览

django - Django中的@login_required内部函数

我对 Django 很陌生。在我的网站上,我试图做这样的事情

所以我的想法是从数据库中获取一些信息,如果用户登录则显示。我想知道,有没有办法做到这一点:

或者,如果您认为这样做是一种不好的做法,请给我一些想法如何以另一种方式做到这一点。可能我必须以某种方式更改 urls.py。

谢谢你。

0 投票
3 回答
541 浏览

python - Python 装饰器是做什么的,它的代码在哪里?

可能的重复:
理解 Python 装饰器

Python 装饰器有什么作用?当我将装饰器添加到方法时,我在哪里可以看到正在运行的代码?

例如,当我@login_required在方法顶部添加时,是否有任何代码替换该行?这条线究竟是如何检查用户会话的?

0 投票
1 回答
140 浏览

django - 来自其他视图的 Django 注册和内容

我的情况如下。

我有一个 django 应用程序,它是一个 CMS,这个应用程序生成页面内容和菜单。

存在生成所有页面内容的“默认”视图。主要模型的字段之一旨在根据设置限制页面的可见性:

  • “内部”(仅限于我们网络上的用户),
  • 'worldwide'(通过 www 可见)现在,我想添加一个额外的值
  • “安全”,这将仅限于登录到该站点的人查看。

我不认为@login_required 会起作用,因为它只适用于整个功能。

我们希望作者或编辑能够设置此标志,而不是编写特殊功能;并且会有页面从“内部”迁移到“安全”然后迁移到“全球”的情况 - 所以理想情况下,网址应该保持不变。

解决此问题的最佳方法是什么?在此先感谢...帕特里克

0 投票
0 回答
191 浏览

python - 浏览器在 @login_required 上正确重定向,但在使用 urllib2 时不正确

我正在使用 unnitest.TestCase 测试测试 Django 应用程序。

进入此页面的测试数据如下所示:

*为了完整起见:hosts['test'] 等于 'http://:' 它通过for host in hosts: ...调用 http_string_tester

我要检查的页面要求用户登录(此页面 url 是“/manager/”):

登录视图 ('/auth/login/') 如下所示:

当我运行测试时,我在日志中得到以下信息(来自 .manage.py runserver):

因此,看来我能够到达 /manager/ 但使用 302(重定向 - 这是有道理的),然后我被重定向到 /auth/login/?next=/manager/ 将我发送到 / manager/ 但再次返回 302 到 /auth/login/?next.... 这样它就告诉我它不接受此用户已登录。我已经验证当我点击我的应用程序时整个过程都有效。这些是步骤:

使用网络浏览器,我转到 http://:/manager/ 这会将我重定向到 http://:/auth/login/?next=/manager/ 我使用 'poster:poster' 登录的地方然后将我重定向到http://:/manager/ 我可以按预期看到页面。

FWIW,我的一项测试只是进入登录页面,可以登录并从输出中提取预期信息,但这似乎在这里不起作用。

我正在寻求一些指导。使用浏览器可以正确重定向我,但这个 urllib2 调用似乎没有这样做。我希望有人能解释为什么这不能像我预期的那样工作。如果您需要任何进一步的信息,请告诉我。

更新:

响应标头分别来自每个打开的:

0 投票
1 回答
187 浏览

python - 登录所需的装饰器,具有许多可能的 HTML 用于相同的 URL

我想限制对 django 通用视图提供的 url 的访问。我已经研究了登录所需的装饰器,但在让它工作方面只取得了部分成功,因为我有一个文档中没有解决的并发症(或者至少我找不到它)。

在添加装饰器之前,在 urls.py 我有以下内容:

上面命名的搜索函数稍微复杂一点,它会根据各种条件呈现四个可能的 html 页面之一。

我在文档中没有看到使用装饰器处理多个 html 页面的方法,而且我似乎无法找出正确的语法。

我已经尝试将装饰器与四个 html 页面之一一起使用,它确实适用于那个 html 页面:

但是我如何要求所有可能的 html 登录?例如,我尝试过这样的事情:

我还尝试对通用视图进行子类化:

//在view.py中

//在urls.py中

但是我得到了 template_name_1 和 template_name_2 不存在的错误......

任何帮助表示赞赏。

0 投票
1 回答
271 浏览

python - Django 1.5.1 login_required 装饰器未捕获未经身​​份验证的用户

我有一个非常典型的 view/login_required 装饰器实现,据报告,有时一天两次,QA 团队会遇到这个错误:

我检查了一下,视图确实有一个 login_required 装饰器。其他也用 login_required 装饰的视图也有报道。

视图的回报是:

仅供参考: ctx 实例存储在会话中,并且经常在视图调用之间更新。我继承了这个设计,对此我无能为力。处理这个的函数是: