使用多个应用程序处理 django 身份验证

科林-G-戴维森

无法从当前的 SO 问题中找到一个简单问题的解决方案。

我在 django 项目中有 2 个应用程序。
App1 来自此处找到的图形教程
App2 将允许用户从数据库中列出数据,在这种情况下它将是分支名称。

如果我尝试使用 @login_required 装饰器访问页面,则 url 路由添加了 /accounts/login/ 并且我得到通常的无法找到错误。

Page not found (404)
Request Method: GET
Request URL:    http://localhost:8000/accounts/login/?next=/calendar

Using the URLconf defined in graph_project.urls, Django tried these URL patterns, in this order:

[name='home']
about [name='about']
signin [name='signin']
signout [name='signout']
calendar [name='calendar']
callback [name='callback']
branches/
admin/
branches/
The current path, accounts/login/, didn't match any of these.

如果我正确阅读了 django 文档,那么这是默认设置,我可以使用项目设置中的 LOGIN_URL 重定向登录路径。当我将其设置为 App1 教程中创建的登录功能时

def sign_in(request):
  # Get the sign-in URL
  sign_in_url, state = get_sign_in_url()
  # Save the expected state so we can validate in the callback
  request.session['auth_state'] = state
  # Redirect to the Azure sign-in page
  return HttpResponseRedirect(sign_in_url)

它将永远循环 MS OAuth 登录,但一旦完成就永远不会访问请求的页面。如果我从设置中省略 LOGIN_URL,它会将帐户/登录/添加到 url,因为这是默认设置。

当请求位于 Login_Required 装饰器后面时,对于其他应用程序中发出的任何请求,我不理解 App1 中的函数处理登录/注销请求是什么?如果我没有 @Login_Required 装饰器并在页面之间移动,为什么当我可以看到它保存我的姓名/电子邮件/日历调用时,它为什么不检查我是否已经通过身份验证。

谢谢

科林-G-戴维森

我联系了 Django-Project 的支持团队。
其中一位维护者查看了我的源代码,在我看来一切都很好,他还检查了我在问题中提供的教程链接。

    His exact words were
    >Personally, I’m a bit suspicious with how they’re doing this. I’ve read through the >tutorial and it looks to me like they’ve taken some shortcuts with managing the user in >the session.
    
    That is enough for me to drop that route and look somewhere else, he offered these as a suggestion should anyone care to look into what I moved on to using.  
        [Azure AD pypi][1]
        [Django Auth Docs][2]
        [MS Django Auth][3]
    
    
      [1]: https://pypi.org/project/django-azure-ad-auth/
      [2]: https://django-auth-adfs.readthedocs.io/en/latest/
      [3]: https://pypi.org/project/django-microsoft-auth/

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

多个Django应用程序,共享身份验证

Django 在“身份验证”应用程序中缺少迁移

如何查询经过身份验证的Django应用程序?

在 django 应用程序中集成 ebay 身份验证

django处理基本的HTTP身份验证

使用Django会话身份验证通过angular4应用程序实现中央身份验证系统

使用 Django 进行 LDAP 身份验证

django身份验证可以与django rest框架基本身份验证结合使用吗?

如何在Django频道上使用令牌身份验证对Websocket进行身份验证?

Django身份验证-如果LDAP身份验证失败,请不要继续使用ModelBackend

Django身份验证 使用多个文件时的模型

使用Django REST Framework作为Django的身份验证后端

处理Django Rest框架+ Vue SPA身份验证

跨多个 Django 站点共享身份验证

无法在 django 的内置身份验证应用程序中删除用户

Django Rest Framework + Angular.js Web应用程序中的用户身份验证

Django应用程序的DB用户在AWS中身份验证失败

如何将 BIGGERkeysses 禁用到在 django 中构建的身份验证应用程序中?

结合使用Django模板和用户身份验证

Django使用证书身份验证连接到Postgresql

使用HTTP身份验证的Django Haystack连接错误

无法使用Django和ldap进行身份验证

如何使用Django进行RDS IAM身份验证?

使用Vue JS和Django进行身份验证?

使用Django REST进行LDAP身份验证

拒绝使用Django频道访问未经身份验证的用户

Django使用python请求进行身份验证

使用Django的HMAC身份验证-共享密钥

Django使用登录的Windows域用户进行身份验证