laravel-4.2で複数のテーブルを使用して複数認証を実装していますので、ログインビューは3つの値を投稿します.1番目はユーザ名、2番目はパスワード、3番目は値ですドロップダウンは、Auth :: <と同じ値であり、要求されたテーブルでログインするのに役立つ第3の値>() - >試行、そして3番目の値がnullでAuth :: user() - >試行が来たらつかいます。フィルタで複数のテーブルセッションをユーザログアウトまで設定したLaravel Multi-Aiuth
<?php
return array(
'multi' => array(
'BSc' => array(
'driver' => 'database',
'table' => 'bsc',
'model' => 'BSc'
),
'user' => array(
'driver' => 'eloquent',
'model' => 'User',
'table' => 'users'
)
),
'reminder' => array(
'email' => 'emails.auth.reminder',
'table' => 'password_reminders',
'expire' => 60,
),
);
編集:postLogin @
Route::filter('students', function()
{
if (Auth::BSc()->guest())
{
if (Request::ajax())
{
return Response::make('Unauthorized', 401);
}
else
{
return Redirect::guest('/'); }
}
});
Route::filter('auth.basic', function()
{
if (Auth::user()->guest())
{
if (Request::ajax())
{
return Response::make('Unauthorized', 401);
}
else
{
return Redirect::guest('/'); }
}
});
がUserControllerで:
public function postLogin()
{
$username = Input::get('username');
$model_name = Input::get('course');
$password = Input::get('password'),
$credentials = array(
'username' => $username,
'password' => $password,
);
//class exists(Model exist?)
if(!(is_null($model_name))){
if(class_exists($model_name)){
if(Auth::$model_name()->attempt($credentials))
{
return Redirect::to('desk')->with('stream',$model_name);
}
else
{
echo "Invalid UserName";
}
}else{
echo "No model is created for ".$model_name;
}
}else{
if(Auth::user()->attempt($credentials)){
return Redirect::intended('desktop')->with('stream',"Test");
}
else{
echo "Username is invalid";
}
}
私は 'ollieread' pakage 認証の実装コードを使用していますマルチ認証のための は
auth.phpです
postLogin機能では、ルート "デスク"変数$ model_nameをセッションに保存して、ユーザーがどのテーブルから来たものかを知るのに役立ちます
ログイン後に/ model/desktopにリダイレクトすると、$ model_nameは正しい値を示します。
<?php
$stream = Session::get('stream');
var_dump($stream);
?>
、で机ビューで値を取得する今では、リダイレクトを渡された正しい値をダンプしますが、私はページを更新すると値がnullになります。
ユーザーがログアウトするまでこの値を設定できたら、その$ stream値でログアウトすると便利です。
も使用できます。ユーザーがログアウトするまで、だから、どのようにセッションを設定することができます::(「流れ」)を取得
Auth::$stream()->username
は、一定値はありますか? 私は正しく説明したと思います。
Session値を保存する必要がある場合は、Session :: putを使用できます。 – Vagabond
はい私はセッションに変数を入れて/ deskにリダイレクトする必要がありますどのように私はcorrent方法を得ていませんでした。 –
右。あなたのログアウト機能も教えてくれますか? – Vagabond