저는 Laravel을 사용하고 작은 내부 API를 작성하여 각도 프론트 엔드와 연결하는 앱을 만들고 있습니다.Laravel 백엔드에 대한 각도 인증
나는 권한을 가지고 있지만 사용자가 로그인 할 수 있는지 그리고 모든 것이 안전한지 확인하는 것이 바람직합니다.
세션 컨트롤러 :
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
문제 없습니다. 도움이 되니 기쁩니다. –
후속 질문이 하나 더 있습니다. 어떻게 작동하는지 알 수 있지만 브라우저 탭이나 새 창/이후 방문 사이에 로그인 상태를 유지하려면 어떻게해야합니까? "세션"서비스에서 laravel의 쿠키 존재 여부 만 확인합니다. 그 모든 것은 클릭하기 시작합니다 ... thanks again – cpk