Как мне войти в систему, используя repoze.who?
У меня есть рабочий файл repoze.who/what (в приложении Pylons). Теперь я хочу автоматически регистрировать новых пользователей после регистрации без необходимости использовать форму входа. Я просмотрел документы и исходный код repoze.who и, может быть, мне его просто не хватает, но я не могу узнать, как настроить вошедшего в систему пользователя из кода без нового запроса на публикацию, проходящего через промежуточное ПО. Это возможно?
1 ответ
Я был с подобной проблемой все утро, и вот что я обнаружил: вы должны знать, что сейчас есть две версии repoze.who (1 и 2):
В версии 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/ Для v2: http://docs.repoze.org/who/2.0/api.html