在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