0

FriendlyFormPluginを使用していますが、request.paramsの一部として入力されたユーザー名を取得したいのですが、確認するとそこにありません。このようにして、パスワードが正しくない場合にユーザー名のデフォルトを設定できます。ありがとう

4

1 に答える 1

3

ミドルウェアをセットアップするときに、ログイン後のハンドラーアクションをセットアップする必要があると思います。そのアクションでは、パラメータを確認したり、セッション変数を設定したりできます。ログインに失敗したというメッセージをユーザーに作成するには、ここにフックする必要がありました。ログインフォームで「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

私はrepozesqlクイックスタートプラグインを使い始めました: http ://code.gustavonarea.net/repoze.what-quickstart/

次に、アプリでSQLとLDAPの両方の認証を行うため、setup_sql_authを削除し、必要に応じて変更しました。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'
                      )
于 2010-04-17T00:07:29.640 に答える