人々をログインさせる方法を見つけるのに何時間も費やしました
本のこのセクションを読みましたか。ログイン機能を公開するため@auth.requires_login()
のデフォルト関数の使用方法とその仕組みについて説明します (必要に応じて、ログイン専用の別のアクションを作成する方法も説明します)。user()
スキャフォールディング アプリケーションでは、default.py コントローラーに次のuser()
関数が含まれており、すべての Auth アクションを公開しています。
def user():
return dict(form=auth())
「/myapp/default/user/[action]」のような URL では、要求された Auth アクション (つまり、URL の最後の要素) が request.args[0] で利用可能になります。上記の関数が を呼び出すauth()
と、Auth__call__()
メソッドは request.args[0] からアクションを読み取り、適切な Auth メソッドを呼び出します。URL が「/myapp/default/user/login」の場合、auth()
最終的にauth.login()
メソッドが呼び出され、ログイン フォームが返されます (およびその処理が処理されます)。auth.login()
独自のカスタム ログイン アクションを作成する場合は、直接呼び出すこともできます。
同様に、URL "/myapp/default/user/logout" は最終的にauth.logout()
メソッドを呼び出し、ユーザーをログアウトします。したがって、ログアウトを有効にしたい場合は、ログアウト URL へのリンクを生成するだけです。最適な方法は、次のURL()
関数を使用することです。
A('Logout', _href=URL('default', 'user', args='logout'))
scaffolding アプリケーションでは、layout.html ビューを使用auth.navbar()
してページの右上に Auth ナビゲーション バーを挿入することに注意してください。ユーザーがログインすると、ナビゲーション バーには上記のような「ログアウト」リンクが自動的に含まれます。