У меня проблема с тем, что я не могу перенаправить пользователя на угловой маршрут, как в следующем примере:
- Я на странице входа в систему, нажмите google login, перенаправлен в google, успешно вошел в систему,и после этого я хочу зайти в свое приложение, например, в новостную ленту.
То, что я сделал на данный момент, так это с паспортом внутри экспресс-приложения.Вот стратегия маршрутов и паспортов для Google.
router.get('/google', passport.authenticate('google', {
scope: ['profile', 'email']
}))
router.get('/google/callback', passport.authenticate('google', {
successRedirect: '/profile',
failureRedirect: '/'
}))
И это стратегия Google, в которой я храню пользователя.
passport.use(new GoogleStrategy({
clientID: Config.google.GOOGLE_CLIENT_ID,
clientSecret: Config.google.GOOGLE_CLIENT_SECRET,
callbackURL: Config.google.CALLBACK_URL,
passReqToCallback : true
},
function(req, token, refreshToken, profile, done) {
process.nextTick(function() {
if (!req.user) {
User.findOne({ 'google.id' : profile.id }, function(err, user) {
if (err) { return done(err) }
if (user) {
if (!user.google.token) {
user.google.token = token
user.google.name = profile.displayName
user.google.email = profile.emails[0].value;
user.username = profile.displayName.replace(/\s+/g, '-').toLowerCase();
user.save(function(err) {
if (err) { throw err }
return done(null, user)
})
}
return done(null, user)
} else {
var newUser = new User()
newUser.google.id = profile.id
newUser.google.token = token
newUser.google.name = profile.displayName
newUser.google.email = profile.emails[0].value;
newUser.username = profile.displayName.replace(/\s+/g, '-').toLowerCase();
newUser.save(function(err) {
if (err) { throw err }
return done(null, newUser)
})
}
})
} else {
var user = req.user
user.google.id = profile.id
user.google.token = token
user.google.name = profile.displayName
user.google.email = profile.emails[0].value;
user.username = profile.displayName.replace(/\s+/g, '-').toLowerCase();
user.save(function(err) {
if (err) { throw err }
return done(null, user)
})
}
})
}))
Так, как я могу сделать это, чтобы перенаправить на угловой маршрутнапример, localhost: 4200 / app / feed, который является потоком при обычной регистрации по электронной почте.