gpt4 book ai didi

python - Django 应用程序中的外部身份验证

转载 作者:行者123 更新时间:2023-11-28 17:23:40 27 4
gpt4 key购买 nike

正如标题所说,我正在开发一个 Django 应用程序,它使用另一个 API 来验证用户身份。外部 API 非常简单,如果用户通过了正确的身份验证,它会返回一个证书。我的应用程序不应该保留任何用户的信息,除了它的证书和 ID(我将其作为 session 变量保留)。

作为此实现的缺点,我没有使用 Django 的身份验证系统及其提供的所有实用方法,例如检查用户是否 is_authenticatedis_anonymous 或获取用户的权限。

由于用户必须登录才能访问我的应用程序的某些页面,因此我还必须要求他/她登录以便他/她可以继续。因此,使用 @login_required 会很麻烦。

我还必须创建一个访问控制模块来检查权限并允许根据用户组(普通用户、管理员等)访问应用程序的某些受限区域。

你们知道我如何自定义 Django 的身份验证系统来处理所有这些问题吗?

最佳答案

你必须在你的request中保持登录用户,所以只需要在没有身份验证的情况下登录

from django.contrib.auth import login

def authenticate_by_api_view(request):
certificate = do_the_magic()

if certificate_valid(certificate):
user = User()
#you can set ID here and save the user to the DB then
login(request, user)

如果您根本不想保存用户,您可以查看 django-lazysignup项目或使用 Django sessions framework

关于python - Django 应用程序中的外部身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40240094/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com