[英]Angular 4: Redirecting user to last visited page in previous session on login
[英]Angular/Express: Redirecting to the last page visited after logging in
这里有一个类似的问题(但不适用)。
在我的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');
});
如果他们没有登录,他们会被重定向到/login
。 一旦成功完成,我想回到他们试图请求的原始页面。
是否有内置的方法来存储用户尝试访问的路由,以便我可以在登录后重定向到它? 我可以用一个cookie来做到这一点,但是这样做感觉有点笨拙......
除了使用PassportJS提供的自定义回调之外,没有内置方法,但如果您为SPA编写此回调,则可以利用$cacheFactory
并创建存储该用户的上次访问页面的服务/工厂。
$ cacheFactory的限制与本地存储相同,因为它们是特定于域的,因此如果更改域,则本地存储将不是相同的跨域。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.