我正在使用Laravel創建一個應用程序,並構建一個小的內部API以連接到Angular前端。對Laravel後端的角度驗證
我有auth工作,但要確保這是登錄用戶的可接受的方式,並確保一切安全。
會話控制器:
public function index() {
return Response::json(Auth::check());
}
public function create() {
if (Auth::check()) {
return Redirect::to('/admin');
}
return Redirect::to('/');
}
public function login() {
if (Auth::attempt(array('email' => Input::json('email'), 'password' => Input::json('password')))) {
return Response::json(Auth::user());
// return Redirect::to('/admin');
} else {
return Response::json(array('flash' => 'Invalid username or password'), 500);
}
}
public function logout() {
Auth::logout();
return Response::json(array('flash' => 'Logged Out!'));
}
Laravel路線:
Route::get('auth/status', '[email protected]');
角廠:
app.factory('Auth', [ "$http", function($http){
var Auth = {};
Auth.getAuthStatus = function() {
$http({
method: "GET",
url: "/auth/status",
headers: {"Content-Type": "application/json"}
}).success(function(data) {
if(!data) {
console.log('Unable to verify auth session');
} else if (data) {
console.log('successfully getting auth status');
console.log(data);
// return $scope.categories;
Auth.status = data;
return Auth.status;
}
});
}
return Auth;
}
]);
我會那麼基本上包裹的東西整個應用程序就像一個 「AppController的」 和將「Auth」工廠聲明爲依賴項。然後,我可以調用Auth.getAuthStatus()並根據用戶狀態隱藏/顯示事物,因爲這基本上是SPA。
我知道我還需要隱藏/ auth/status URI被任何人查看/命中,並且想知道如何做到這一點。一種普遍的問題,但任何洞察力將不勝感激。謝謝。
我已經看到了這篇文章,只是沒有乍一看頗有如何實現有益的,寫得很好很。謝謝一堆諾亞。 – cpk 2014-10-09 17:02:56
沒問題,很高興我能幫到你。 – 2014-10-09 17:30:09
還有一個跟進問題。我知道這是如何工作的,但是我怎樣才能在瀏覽器標籤頁或新窗口/稍後訪問之間保持登錄狀態? 我會在「Session」服務中檢查laravel的cookie是否存在?它的所有開始點擊...再次感謝 – cpk 2014-10-09 18:47:15