Tworzę aplikację przy użyciu Laravel i budując mały wewnętrzny interfejs API, aby połączyć się z interfejsem Angular.Angular Auth przeciwko backrunkowi Laravel
Mam autoryzację, ale chciałem się upewnić, że jest to akceptowalny sposób zalogowania się użytkownika i upewnić się, że wszystko jest bezpieczne.
Sesje Kontroler:
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 Trasa:
Route::get('auth/status', '[email protected]');
kątowa fabryczne:
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;
}
]);
bym wtedy zasadniczo owinąć całą aplikację w coś jak "appController" i zadeklaruj fabrykę "Auth" jako zależność. Następnie mogę wywołać Auth.getAuthStatus() i ukryć/pokazać rzeczy na podstawie stanu użytkownika, ponieważ zasadniczo będzie to SPA.
Zdaję sobie sprawę, że muszę ukryć identyfikator URI/auth/status przed obejrzeniem/trafieniem przez kogokolwiek i zastanawiałem się, jak to zrobić. Rodzaj ogólnego pytania, ale jakikolwiek wgląd byłby bardzo doceniony. Dzięki.
Widziałem ten artykuł, po prostu nie dość zrozumieć na pierwszy rzut oka, jak pomocny i dobrze napisane jest.Dzięki pęczkuję Noah. – cpk
Nie ma problemu, cieszę się, że mogłem pomóc. –
Kolejne pytanie uzupełniające. Rozumiem, jak to wszystko działa, ale jak mogę zachować stan logowania między kartami przeglądarki lub nowymi oknami/nowszymi odwiedzinami? Czy po prostu sprawdziłbym obecność ciasteczek laravel w usłudze "Sesja". Wszystko zaczyna się klikać ... jeszcze raz dzięki – cpk