Zunächst einmal möchte ich eine Middleware-Funktion erstellen, die Umleitung im Fall zu behandeln, wird der Benutzer nicht angemeldet, so etwas wie dieses:
const checkLogin = (req, res, next) => {
// Checks if the user is logged in
if(!userIsLoggedIn) {
// If user is not logged in
// Get relative path of current url
const url = req.originalUrl;
// And redirect to login page, passing
// the url as a query string that Angular
// can access later
res.redirect(`/login/?redirect=${url}`);
} else {
// If user is logged in
// go on and render the page
next();
}
}
router.get('/wall', checkLogin, function(req, res, next){
res.render('wall');
});
diese Weise, wenn Wenn der Benutzer nicht angemeldet ist, erhalten Sie eine Weiterleitung an eine URL wie /login /? redirect =/wall/post/14.
Dann in Ihrem Angular-Code, würden Sie auf das Login-Versprechen von Node warten und tun Sie einfach eine Umleitung zu diesem Query-String, den wir haben: Redirect. Etwas wie folgt aus:
// Assuming you're logging from a service
angular
.service('LoginService', function($location, $window) {
// Generic login (could be $http, $resource, restangular)
LOGIN_PROMISE
.then(function(res) {
// If login was successful
if(res.success) {
// $location.search() allows you
// to access query strings
var redirectTo = $location.search().redirect;
// And then redirect to the page the
// user were before being redirected
// to the login page
$window.location.href = redirectTo;
}
})
})
Oder Sie eine Umleitung tun könnte direkt von Ihrem Backend-Code:
// On your Angular code
$http({
method: 'GET',
params: {
redirect: $location.search().redirect
}
});
// On Node
router.get('/api/login', (req, res, next) => {
if(passwordIsCorrect) {
// And do the redirect
res.redirect(req.body.redirect);
}
});
Dies ist nur eine von vielen Möglichkeiten, wie Sie dies erreichen können (das ist der Schönheit der Webentwicklung).
Hoffe, das kann Ihnen helfen!
verwenden Sie die Sitzung, um den Benutzer zu verfolgen? –
Yeah, Express 'Sitzung –
Hoffe das hilft möglicherweise mit wenig zwicken. https://stackoverflow.com/questions/13335881/redirecting-to-previous-page-after-authentication-in-node-js-ususing-passport-js –