質問

私はKohana 3を実行しています、そして、authモジュールを理解するのに苦労しているか、それが必要なものであったとしても、苦労しています。基本的に、基本的なユーザー名/パスワード保護を使用して基本的なユーザープロファイルサイトを作成したいです。

既存のコントローラをどのように取りますか...

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

...そして何らかの認証システムでそれらを使用する

役に立ちましたか?

解決

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('');
    }
}
.

理解するのに十分簡単です。これをコントローラに入れることができ、認証を必要とするすべてのコントローラを持つことができます。

他のヒント

コントローラ上のすべてのページにユーザーが登録されるようにする場合は、__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');
    }
}
.

これは私たちが使用するコードですが、3ではなく、3つのものではないので、あなたはあなたの目的のために少し調整する必要があるでしょう。

私は kohanaの認証モジュール3

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top