3

在 TG1 中,您可以通过执行以下操作更改登录用户:

identity.set_current_identity(identity)

是否可以在 TG2 中做类似的事情?似乎 repoze.who 应该提供类似的东西,但我似乎找不到神奇的词。

或者,他们是否有任何关于如何以任何方式使用 repoze.who 的文档,而不是要求登录名和密码的通常方法,然后将该数据提交到 /login_handler。处理 login_handler 的代码在哪里?

谢谢!

4

1 回答 1

3

您可以使用标识符来记住新用户。默认情况下,TurboGears2 中的用户由他们的用户名标识,因此您可以使用用户名切换他们。

def force_user(user_name):
    request = tg.request
    response = tg.response

    request.cookies.clear()
    authentication_plugins = request.environ['repoze.who.plugins']
    identifier = authentication_plugins['main_identifier']

    try:
        response.headers = identifier.remember(request.environ, {'repoze.who.userid':user_name})
    except:
        pass
于 2011-07-09T17:09:18.737 回答