Аналогичный вопрос here (но не применимо).Угловой/Экспресс: перенаправление на последнюю страницу, посещенную после регистрации в
В моем SPA я использую PassportJS для проверки подлинности. Я много маршрутов, которые требуют от пользователя войти в систему, я маршрут, как это:.
// ... other routing stuff
when('/insights', {
templateUrl: 'partials/insights',
controller: 'insightsCtrl',
resolve: {
loggedin: checkLoggedin
}
})
var checkLoggedin = function($q, $timeout, $http, $location, $rootScope){
var deferred = $q.defer();
$http.get('/loggedin').success(function(user){
if (user !== '0') {
$rootScope.user = user;
deferred.resolve();
}
else {
deferred.reject();
$location.url('/login');
}
});
return deferred.promise;
};
Мой маршрут, чтобы проверить, если вход в систему:
app.get('/loggedin', function(req, res) {
res.send(req.isAuthenticated() ? req.user : '0');
});
Если они не вошли в систему, они» re перенаправлено на /login
. Как только это будет успешно выполнено, я хотел бы вернуться к исходной странице, которую они пытались запросить.
Есть ли встроенный способ хранения маршрута, к которому пользователь пытается получить доступ, чтобы я мог перенаправить его после входа в систему? Я могу сделать это с помощью печенья, я полагаю, но он чувствует себя немного неуклюжим, чтобы сделать это ...
Отлично. Когда вы говорите, что я могу отправить запрос на свой сервер, как это будет достигнуто? Скорее не использовать «угловое-локальное хранилище»/любые дополнительные модули, если я могу помочь. – Jascination
На основании документации PassportJs вы можете вернуть действие перенаправления своему угловому клиенту. Например: return res.redirect ('/ users /' + user.username). Я могу больше объяснить чат. – Ygalbel
Извините, я спрашиваю, как сообщить Паспорту, какой изначально был запрошен Угловой маршрут (т. Е. Изнутри Углового). – Jascination