2

私は Kohana 3 を実行していますが、Auth モジュールを理解するのに苦労しています。基本的に、基本的なユーザー名/パスワード保護を備えた基本的なユーザー プロファイル サイトを作成したいと考えています。

既存のコントローラーを使用するにはどうすればよいですか...

class Controller_Profile extends Controller
{
    function action_index( $user_id )
    {
        // User should already be authenticated by here I think
    }
}

...そして、ある種の認証システムでそれらを使用します

4

3 に答える 3

6

Kohana 3の場合、JIStoneが提案するようにbeforeではなく、チェックインを行うことをお勧めします。__construct

public function before()
{
    parent::before();

    // This automatically checks for an auto login cookie (thanks kemo).
    if ( ! Auth::instance()->logged_in())
    {
        // Redirect to a login page (or somewhere else).
        $this->request->redirect('');
    }
}

理解するのに十分シンプル。これをコントローラーに入れて、それを拡張するために認証が必要なすべてのコントローラーを使用できます。

于 2011-05-21T21:56:01.170 に答える
1

__construct()コントローラーのすべてのページにユーザーを登録する必要がある場合は、ステートメントにチェックを入れることができます。

function __construct()
{
    //Check roles for Access!!!!
    parent::__construct();
    $this->load_user();
    if( ! $this->is_registered )
    {
        if(request::is_ajax())
            die('This ajax call cannot be completed due to permission issues.');
        // this will redirect from the login page back to this page
        $this->session->set('requested_url', url::current());
        url::redirect('user/login');
    }
}

これは私たちが使用するコードですが、Kohana 3 ではなく 2 であるため、目的に合わせて少し調整する必要があります。

于 2011-05-21T21:19:12.390 に答える
1

Kohana 3での認証モジュールのインストールと基本的な使用方法についての簡単なチュートリアルへのリンクを提供しました。

Auth プロセスが機能したら、ログインしているユーザーと before() メソッドで適切な認証ロールをチェックして特定のコントローラーを保護するか、このチェックが必要なすべてのコントローラーのベース コントローラーを作成します。ユーザーがログインしていない場合は、ログイン ページにリダイレクトします。適切なアクセス レベル (または役割) を持っていない場合は、「アクセスが拒否されました」ページを表示できます。

于 2011-05-23T15:18:25.040 に答える