Utilisation d'un token OAuth obtenu avec Passport.js

a marqué ce sujet comme résolu.
Auteur du sujet

Salut,

je travail sur un site permettant de s’identifier avec reddit, puis qui récupère des infos sur le compte.

Le site lui même est en nodejs, mais j’aimerais pouvoir utiliser Praw, donc python, pour faire les appels à l’API de reddit.

La connexion se fait avec Passport.js.

Voici mon code :

passport.use(new RedditStrategy({
  clientID: "AAA",
  clientSecret: "BBB",
  callbackURL: "http://127.0.0.1:3000/auth/reddit/callback",
  scope: ['identity', 'mysubreddits', 'read']
},
  function (accessToken, refreshToken, profile, done) {
    console.log("access Token :"+ accessToken);
    console.log("refresh Token :"+ refreshToken);

    ...
    });
  }
));


router.get('/auth/reddit/callback', function (req, res, next) {
  passport.authenticate('reddit', (err, user, info)=>{
    if(err){
      res.redirect('/fail');
    }
    else if(!user){
      res.redirect("/fail");
    }
    else{
      req.logIn(user, (e)=>{
        console.info("logged in");
        if(e) res.redirect("/fail")
        else res.redirect("/");
      });
    }

  })(req, res, next);
});

Cette partie marche bien, j’arrive à me connecter à Reddit. Cependant, si j’essaie d’utiliser le "access Token" qui est affiché pour me connecter avec python, en exécutant ceci:

reddit = praw.Reddit(
    client_id="AAA",
    client_secret="BBB",
    user_agent="web sign-in",
    redirect_uri="http://localhost:8080",
)

reddit.auth.authorize("l' access Token"")

Ca ne marche pas, j’ai un "OAuthException: invalid_grant error processing request".

Je dois louper quelque chose, mais je ne vois pas quoi. Une idée ?

Merci d’avance !

+0 -0

Avant de passer à Python/Praw, parviens-tu à faire cet appel API en JavaScript après le premier flow OAuth2 octroyant le token ? Si oui, comment fais-tu ?

Édité par sgble

+0 -0
Auteur du sujet

J’ai bien accès au "profile", avec les id, name etc.

Mais je n’ai pas essayé d’accéder à l’API, car je connais déjà Praw et je n’avais pas envie de voir comment l’utiliser avec nodejs, d’autant que j’ai n’ai pas trouvé d’exemple de code.

+0 -0
Auteur du sujet

Salut, en fait je me suis rendu compte que je ne devais pas appeler reddit.auth.authorize() avec l’access_token, mais avec le code envoyer au callback.

Cependant, même en le faisant avec ce code, cela ne marche pas…

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte