我有一个问题,我无法将用户重定向到角度路线,例如以下示例:
到目前为止,我对护照所做的事情是在Express应用程序内进行的。这是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这样的有角度的路由,这是普通电子邮件登录时的流程。
答案 0 :(得分:1)
您可以在此处进行配置并检查
> Activating com.acme.persistence.audit component
...
> Adding com.acme.persistence.test.ProductListenerImpl@1337
> Adding null
到
router.get('/google/callback', passport.authenticate('google', {
successRedirect: '/profile',
failureRedirect: '/'
}))