Sto creando un'app utilizzando Laravel e creando una piccola API interna per connettersi a un frontend angolare.Autent Angular contro il backend Laravel
Ho l'autenticazione automatica, ma volevo assicurarmi che questo sia un modo accettabile per accedere a un utente e per assicurarsi che tutto sia sicuro.
sessioni del controller:
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 Percorso:
Route::get('auth/status', '[email protected]');
angolare di fabbrica:
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;
}
]);
Vorrei quindi essenzialmente avvolgere l'intera applicazione in qualcosa come un "AppController" e dichiarare la dipendenza "Auth" come dipendenza. Quindi posso chiamare Auth.getAuthStatus() e nascondere/mostrare le cose in base allo stato dell'utente poiché questo sarà essenzialmente SPA.
Mi rendo conto inoltre di nascondere l'URI/auth/status dall'essere visualizzato/colpito da chiunque e mi chiedevo come farlo. Una specie di domanda generale, ma qualsiasi intuizione sarebbe molto apprezzata. Grazie.
Ho visto questo articolo, proprio non riusciva a rendersi conto a prima vista come utile e ben scritto che è.Grazie mille Noah. – cpk
Nessun problema, felice di poterti aiutare. –
Un'altra domanda di follow-up. Capisco come funziona tutto questo, ma come posso mantenere lo stato di login tra le schede del browser o le nuove finestre/visite successive? Dovrei solo verificare la presenza di laravel nel servizio "Sessione". Tutto sta iniziando a fare clic ... grazie ancora – cpk