Обрабатывать неправильный пользователь / пароль repoze.who изящно в Python/Pylons

Я использую FriendlyFormPlugin, но хотел бы получить имя пользователя, которое было введено как часть request.params, но его больше нет, когда я проверяю. таким образом, я могу установить имя пользователя по умолчанию, если пароль неверный. Спасибо

1 ответ

Решение

Я думаю, что вам нужно настроить действие обработчика после входа в систему при установке промежуточного программного обеспечения. В этом действии вы можете затем проверить параметры, установить переменную сеанса и т. Д. Я должен был зацепиться здесь, чтобы создать сообщение для пользователя о том, что его логин не удался. Я проверяю параметр 'login_failed' в форме входа.

    def post_login(self):
    """ Handle logic post a user's login

    I want to create a login_handler that's redirected to after login. This would
    check 

    - if user was logged in, if not then send back to login
    - if user is admin, go to job list
    - adjust the max age on the existing cookie to XX remember me timeframe

    """
    if auth.check(not_anonymous()):
        log.debug('checked auth')
    else:
        # login failed, redirect back to login
        log.debug('failed auth')
        redirect_to(controller="root", action="login", login_failed=True)

    # expire this cookie into the future
    ck = request.cookies['authtkt']
    response.set_cookie('authtkt', ck,
            max_age=60*60*24*7,
            path='/'
    )

    redirect_to(controller="job", action="list")

В ответе для более подробной информации, слишком большой, чтобы добавить в качестве другого комментария:

Итак, у меня есть несколько вещей, на которые вы можете посмотреть. Во-первых, это мои документы, которые я пишу как резюме, чтобы объяснить другим разработчикам, как работает этот материал / используется терминология:

http://72.14.191.199/docs/morpylons/auth_overview.html

Я начал использовать плагин быстрого запуска sql: http://code.gustavonarea.net/repoze.what-quickstart/

Затем я разорвал их setup_sql_auth и изменил его для наших собственных нужд, так как мы выполняем аутентификацию SQL и LDAP в наших приложениях. Обязательно посмотрите исходный код плагина для setup_sql_auth и просматривайте его, пока не поймете, что он делает.

и так как вы спросили о конфигурации промежуточного программного обеспечения...

  app = setup_morpace_auth(app, User, Group, Permission, meta.Session,
                      post_login_url='/root/post_login',
                      post_logout_url='/login',
                      log_level='debug',
                      log_file='stdout'
                      )
Другие вопросы по тегам