Django与自定义认证后端(web服务)+无数据库。如何在会话中保存数据?

1 投票
1 回答
1055 浏览
提问于 2025-04-15 22:43

我到处找资料,参考了这个回答,然后整理出了下面的内容。
它能正常工作,但我需要在用户的会话中放一些东西,就在authenticate里面。

我该如何把acme_token存储到用户的会话中,以便在他们登出时能够清除?在这个情况下,request对象是不可用的。

class AcmeUserBackend(object):
    # Create a User object if not already in the database?
    create_unknown_user = False

    def get_user(self, username):
        return AcmeUser(id=username)

    def authenticate(self, username=None, password=None):
        """ Check the username/password and return an AcmeUser. """
        acme_token = ask_another_site_about_creds(username, password)

        if acme_token:
            return AcmeUser(id=username)
        return None

1 个回答

2

把它放到返回的用户上,然后在中间件里处理

撰写回答