2010-11-16 76 views
4

我有一個工作repoze.who /什麼設置(在一個掛架應用程序)。我現在想要在註冊後自動登錄新用戶,而不必使用登錄表單。我瀏覽過repoze.who文檔和源代碼,也許我只是想念它,但我無法找到如何從代碼設置登錄用戶,而不需要通過中間件發佈新的發佈請求。這可能嗎?如何使用repoze.who登錄用戶?

回答

2

我一直有類似問題的所有上午,這是我發現: 你要知道,現在有repoze.who的兩個版本(1和2):

IN V 1.x中:

rememberer = request.environ['repoze.who.plugins']['cookie'] 
identity = {'repoze.who.userid': user.username} 
response.headerlist = response.headerlist + \ 
     rememberer.remember(request.environ, identity) 

以v 2.x的(因爲它提供和API更容易):

from repoze.who.api import get_api 

who_api = get_api(request.environ) 
creds = {} 
creds['login'] = yourusername 
creds['password'] = yourpassword 
authenticated, headers = who_api.login(creds) 

資源: 對於V1:http://www.deanlee.cn/programming/repoze-who-perform-login-programmatically/ For v2:http://docs.repoze.org/who/2.0/api.html