コハナでユーザープロファイルを作る
-
09-09-2020 - |
質問
私は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つのものではないので、あなたはあなたの目的のために少し調整する必要があるでしょう。
あなたの認証プロセスが機能したら、ログインしているユーザーと前()メソッドで適切な認証ロールをチェックするか、またはこのチェックが必要なすべてのコントローラのベースコントローラを作成して、特定のコントローラを保護できます。ユーザーがログインしていない場合は、それらをログインページにリダイレクトした場合、それらが適切なアクセスレベル(または役割)がない場合は、「アクセス拒否」ページを表示できます。
所属していません StackOverflow