首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何恰当地勾勒出django-duo-auth的路径?

如何恰当地勾勒出django-duo-auth的路径?
EN

Stack Overflow用户
提问于 2021-02-12 14:43:21
回答 1查看 188关注 0票数 0

我目前正致力于在django项目中实现双因素身份验证。目前看来,django-duo-auth是这方面最好的包。我安装了这个包,并查看了他们的自述文件的基本说明:

https://github.com/Elemnir/django-duo-auth/blob/master/README.rst

然而,这导致我的项目不断地重定向到一个不存在的子目录'duo‘,这就是我命名的路径。例如,我的应用程序在XX.XX.XX.XX:YYYY中加载到url自动重定向页面到:http://XX.XX.XX.XX:YYYY/duo/login/?next=/

或者,XX.XX.XX.XX:YYYY/admin自动重定向到:http://XX.XX.XX.XX:YYYY/duo/login/?next=/admin

这只会导致django的通用base.html ( duo_auth_form.html扩展)

下面是一些相关代码的片段,尽管它与包的自述建议没有太大区别。

/urls.py

代码语言:javascript
运行
AI代码解释
复制
urlpatterns = [
...
    path('admin/', admin.site.urls),
    path('duo/',  include('duo_auth.urls')),
]

/settings.py

代码语言:javascript
运行
AI代码解释
复制
INSTALLED_APPS = [
    ...
    'duo_auth',
]

MIDDLEWARE = [
    ...
    'duo_auth.middleware.DuoAuthMiddleware',
]


DUO_CONFIG = {
    'DEFAULT': {
        'HOST': '<api-host-url>',
        'IKEY': '<integration_key>',
        'AKEY': '<app_secret_key>',
        'SKEY': '<secret_key>',
        'FIRST_STAGE_BACKENDS': [
            'django.contrib.auth.backends.ModelBackend',
        ]
    }
}

与read相比,惟一的区别是在示例do_auth_form.html中稍微重定向,其中扩展到模板的子目录,即文件顶部的{% extends "dir\base.html" %}

似乎这个包是相当新的,没有太多的论坛为问题,所以我认为这将是最好的要求这里。任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

发布于 2021-11-09 13:38:00

我相信这实际上是django-duo-auth包按预期工作。中间件的工作方式是,在将其添加到您的项目之后,将检查使用其中一个FIRST_STAGE_BACKENDS进行身份验证的任何经过身份验证的用户,以查看他们是否也使用了Duo进行身份验证,如果没有,他们将被重定向到duo/login/的Duo登录页面,并提示他们完成双重身份验证,类似于Django的内置@login_required装饰器如何将匿名用户重定向到accounts/login/以登录。

如果您的用户不想强制执行第二个因素,我建议创建一个只为这些用户进行身份验证的ModelBackend子类。类似于本问题中描述的方法,但反转逻辑:

https://github.com/Elemnir/django-duo-auth/issues/1

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66179978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档