在 TG1 中,您可以通过执行以下操作更改登录用户:
identity.set_current_identity(identity)
是否可以在 TG2 中做类似的事情?似乎 repoze.who 应该提供类似的东西,但我似乎找不到神奇的词。
或者,他们是否有任何关于如何以任何方式使用 repoze.who 的文档,而不是要求登录名和密码的通常方法,然后将该数据提交到 /login_handler。处理 login_handler 的代码在哪里?
谢谢!
在 TG1 中,您可以通过执行以下操作更改登录用户:
identity.set_current_identity(identity)
是否可以在 TG2 中做类似的事情?似乎 repoze.who 应该提供类似的东西,但我似乎找不到神奇的词。
或者,他们是否有任何关于如何以任何方式使用 repoze.who 的文档,而不是要求登录名和密码的通常方法,然后将该数据提交到 /login_handler。处理 login_handler 的代码在哪里?
谢谢!
您可以使用标识符来记住新用户。默认情况下,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