Мне нужен совет для авторизации входа в систему. Мое веб-приложение состоит из двух частей: Frontend - это AngularJS и Backend Symfony. Я смог реализовать аутентификацию в Backend, я могу войти туда и получить правильный пользователь из базы данных с правильной ролью.Обработка сеансов в Symfony и AngularJS
Теперь я хотел бы создать сеанс и вернуть его в Frontend. Но как мне это сделать? Я думаю о возвращении сессии с помощью Json Web Token to Angular. Правильно ли это? И что мне нужно реализовать в моем Угловом контроллере, чтобы сохранить этот сеанс правильно?
Спасибо заранее!
Вот мой код:
Backend (Symfony)
class SecurityController extends Controller {
/**
* @Route("/login", name="login_form")
*/
public function loginAction(Request $request) {
$session = $request->getSession();
// get the login error if there is one
$error = $session->get(Security::AUTHENTICATION_ERROR);
$session->remove(Security::AUTHENTICATION_ERROR);
return new JsonResponse($session);
}
Вот мой Угловое-Frontend
var cardCollectionControllers = angular.module('cardCollectionControllers');cardCollectionControllers.controller('LoginCtrl', ['$scope', '$http',
function($scope, $http) {
$scope.user = {};
$scope.login = function() {
$http({
method : 'POST',
url : 'http://localhost:8080/card_collection_backend/web/app_dev.php/login',
data : encodeURIComponent('username=' + $scope.username +'&password=' + $scope.password),
headers : {'Content-Type': 'application/x-www-form-urlencoded'}
})
.success(function(data) {
//what to do here?
});
};}]);
JWT является хороший способ пойти, и вы получите пакеты для Symfony, чтобы работать с ними. Сохраните его в Угловом, но вы хотите (то есть локальное хранилище). Вы можете использовать перехватчик http в угловом для автоматического добавления токена ко всем запросам (и обновить токен маркера и т. Д.) – JimL
Спасибо за совет! Btw - это правильный код в Backend? – iChaos