Я создал API для приложения с nodejs + passport, используя passport-google-oauth20
, это стратегия паспорта, которую я использую
passport.use(new GoogleStrategy({
clientID: config.google.clientId,
clientSecret: config.google.clientSecret,
callbackURL: config.google.redirectUri
},
function (accessToken, refreshToken, profile, cb) {
User.findOne({ googleId: profile.id }).exec(function (err, user) {
if (err) return console.log('ERROR ' + err)
if (user) {
console.log('User authenticated ' + `${user.email}`.blue)
return cb(err, user)
} else {
let newUser = new User({
googleId: profile.id,
email: profile.emails[0].value,
name: profile.name.givenName,
surname: profile.name.familyName,
picture: profile.photos[0].value
})
newUser.generateToken()
newUser.save(function (err, obj) {
if (err) {
console.log('Error saving a new user: '.red + err)
}
console.log('New user ' + `${obj.email}`.blue)
return cb(err, obj)
})
}
})
}))
, и это маршруты, которые войдите в систему пользователя
router
.route('/auth/google')
.get(passport.authenticate('google', { scope: ['profile', 'email'] }))
router
.route('/auth/google/callback')
.get(
passport.authenticate('google', { failureRedirect: '/auth' }),
(req, res) => {
return res.send(sanitize.clean(req.user))
}
)
Однако теперь я создаю интерфейс с флаттером, и я попытался пройти аутентификацию с помощью Google во встроенном браузере, и я обнаружил, что Google отключил их
Как я могу аутентифицироваться с помощью Google из приложения, но все еще подключая свой бэкэнд?