문제

Kohana 3을 실행하고, 인증 모듈을 이해하는 데 어려움을 겪거나, 또는 그것이 필요한 것일 수 있습니다.기본적으로 기본 사용자 이름 / 암호 보호 기능이있는 기본 사용자 프로필 사이트를 만들고 싶습니다.

기존 컨트롤러를 어떻게 가져갈 수 있습니까?

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

... 그리고 일종의 인증 시스템을 사용하여 사용하십시오

도움이 되었습니까?

해결책

코 하나 3에서는 before에서 체크를하고 싶지 않고 Jistone과 같은 __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 개의 것이 아닌 코인 2이므로 목적을 위해 조금 조정해야합니다.

i는 코인 3의 인증 모듈

인증 프로세스가 작동하면 이전의 컨트롤러가 이전 컨트롤러를 선택하거나 이전의 컨트롤러를 확인 하거나이 수표가 필요할 모든 컨트롤러에 대한 기본 컨트롤러를 만들어 특정 컨트롤러를 보호 할 수 있습니다.사용자가 로그인하지 않은 경우 적절한 액세스 수준 (또는 역할)이없는 경우 로그인 페이지로 리디렉션하면 "액세스 거부"페이지를 표시 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top