gpt4 book ai didi

python - Django - 没有模型的登录用户

转载 作者:太空宇宙 更新时间:2023-11-04 05:40:24 24 4
gpt4 key购买 nike

我正在尝试实现 SSO 登录,从 saml 响应中获取所有授权权限:

class SAMLServiceProviderBackend(object):

def authenticate(self, saml_authentication=None):
if not saml_authentication: # Using another authentication method
return None

if saml_authentication.is_authenticated():
attributes = saml_authentication.get_attributes()
user = User(username=saml_authentication.get_nameid())
user.first_name = attributes['givenName']
user.last_name = attributes['sn']

return None

在 View 中我得到了类似的东西

...
user = authenticate(saml_authentication=auth)
login(self.request, user)
...

login 由于缺少 save() 方法而失败。唯一的方法是继承 User 并覆盖 save 方法。试试这个,我得到了下一个错误,is_authenticatedget_and_delete_messages 等等

有没有一种简单的方法可以将用户对象插入到 session 中,而无需将用户保存到数据库中?

类似于:

request.session['user'] = authenticate(saml_authentication=auth)

最佳答案

我想应该有一些限制,例如。您不能将您的数据保存为 FK 用户。

我自己试过了,我怀疑你可以在 authenticate() 方法中动态创建一个用户实例,只是不要调用 user.save(),或者重写 save() 方法什么都不做。

您可能还需要在请求之间连接用户记录,因此您可能需要为用户编写自己的序列化程序并从 session 中加载构建用户实例。

关于python - Django - 没有模型的登录用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34139510/

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