1
嗨,我很新的laravel。我被要求在Laravel創建應用程序。現在開始,我正在開發登錄模塊。如何在laravel 4.2中創建登錄功能
基本要求
- 顯示的登錄頁面,登陸頁面,當用戶登錄。
- 給用戶憑據後,會議應當設置和用戶必須重定向到內頁。
- 成功登錄後,登錄頁面不應顯示,除非註銷。
因此,爲了檢查登錄狀態,我在下面的filters.php中使用了過濾器。
App::before(function($request)
{
// $myApp Singleton object
App::singleton('myApp', function(){
$app = new stdClass;
$app->title = "APD | Dealership Invoicing";
if (Auth::check()) {
$app->user = Auth::User();
$app->isLogedin = TRUE;
}
else
{
$app->isLogedin = FALSE;
$app->user = FALSE;
}
return $app;
});
$app = App::make('myApp');
View::share('myApp', $app);
});
我實現了基於張貼在「http://heera.it/laravel-4-view-composer-master-layout#.VH280nvB25s」的博客上面的代碼。
當用戶從視圖中單擊登錄按鈕時,我將數據發送到控制器並檢查數據庫以及數據是否正確,然後我將用戶詳細信息放入會話並重定向到內部頁面。
控制器代碼
public function validateLogin()
{
$data = Input::all();
$user_data = $this->validate_user_login($data);
if(is_array($user_data) && !empty($user_data) && count($user_data) > 0)
{
/* The below conversion is used, because there seems to be difficulty in returning the Arrays from the Eloquent ORM.*/
$user_array = (array)$user_data[0];
Session::put('user_data', $user_array);
return Redirect::to('/jobs');
}
}
Route.php代碼
Route::get('/', function()
{
#return View::make('login/login');
return Redirect::to('/login');
});
Route::get('/login', 'User[email protected]');
Route::post('/user/validate_login', '[email protected]');
Route::group(array('before' => 'auth'), function()
{
Route::get('/jobs', '[email protected]_list');
});
但我的問題是,重定向帶我回到登錄頁面。
問題
- 我怎麼可以設置登錄狀態登錄後爲真?
- 如何啓動會話。我在控制器中設置了會話密鑰,足以驗證用戶會話嗎?
- 將來我必須開發相同的REST API,我必須爲Web和服務平臺使用相同的應用程序。那麼基於這種把控制放在過濾器中會在API調用中造成任何困難?
- 我在哪裏可以在「Auth :: Check()」中找到Auth類和Check函數?
我已經複製了此代碼但Auth :: check()不適用於我 – 2017-04-11 13:11:32