Je travaille dans une application qui utilise une API REST en utilisant la pile MEAN et Passport JS pour gérer l'authentification.Rest API pour connecter (autoriser) google pour utilisateur connecté
L'authentification, nous utilisons JTW jetons pour la communication entre le backend et le frontend. Le jeton est généré en fonction du nom d'utilisateur local et des mots de passe.
Maintenant je veux ajouter (autoriser) le compte google de l'utilisateur au profil à utiliser avec google calendar API. (en utilisant ce->https://github.com/wanasit/google-calendar)
J'ai déjà réussi à envoyer l'utilisateur à la page d'autorisation google, et à récupérer le jeton. Le problème est que lorsque l'utilisateur est redirigé vers la page, il perd le jeton JWT où je vérifie l'utilisateur pour la demande.
Existe-t-il un autre moyen d'obtenir l'utilisateur actuellement connecté ou de passer un en-tête/param d'autorisation de rappel personnalisé lors de l'appel de la méthode authorize?
auth.js:
var googleParams = {
clientID: config.auth.google.clientID,
clientSecret: config.auth.google.clientSecret,
callbackURL: config.auth.google.callbackURL
}
var googleStrategy = new GoogleStrategy(googleParams, function (token, refreshToken, profile, done) {
profile.token = token;
return done(null, profile);
});
itinéraires:
rotas.get(
'/google',
auth.authenticate(), // will check the current user
auth.isLoggedIn, // make sure the user is really logged in
auth.authorize('google', { scope: googleScope, passReqToCallback: true }) // redirects to google to get the token
);
rotas.get('/callback/google',
auth.authorize('google', { scope: googleScope, passReqToCallback: true })
auth.authRedirect()
);
la fonction auth.authRedirect()
ci-dessus est la solution la plus proche que j'ai trouvé. C'est un middleware Express qui redirige l'utilisateur vers un itinéraire connu dans le frontend où l'utilisateur est authentifié ... mais je ne serais pas en mesure de récupérer tout son profil Google et les informations dont j'ai besoin ...
Hmm ... bien! Je ne connaissais pas cette propriété 'state'. Bien joué. –