2017-07-20 4 views
0

passport.jspasseport OAuth2Strategy en NodeJS faire une demande automatique POST pour jeton d'accès

passport.use(new OAuth2Strategy({ 
    authorizationURL: ' https://gymkhana.iitb.ac.in/sso/oauth/authorize', 
    tokenURL: 'https://gymkhana.iitb.ac.in/sso/oauth/token', 
    clientID: process.env.IITB_SSO_CLIENT_ID, 
    clientSecret: process.env.IITB_SSO_CLIENT_SECRET, 
    callbackURL: "http://192.168.0.111:8080/auth/iitbsso/callback" 
}, 
function(accessToken, refreshToken, profile, done) { 
    console.log(accessToken); 
} 

app.js

app.get('/auth/iitbsso', passport.authenticate('oauth2', { scope:'basic'})); 
app.get('/auth/iitbsso/callback', passport.authenticate('oauth2', { 
    successRedirect: '/', 
    failureRedirect: '/login' 
}), (req, res) => { 
    res.redirect(req.session.returnTo || '/'); 
}); 

Voici comment j'ai essayé d'obtenir un accessToken du serveur Mais mon le serveur se bloque à http://192.168.0.111:8080/auth/iitbsso/callback?code=TDPHtfHuKv4HWNhJikkFzNz5bR4fvJ

Et je suis indéfini dans le journal.

Donc, ma question est: 1) Est-ce que cette stratégie fait cette demande POST automatiquement ou dois-je le faire explicitement dans le rappel?

POST/OES/oauth/jeton/HTTP/1.1

Hôte: gymkhana.iitb.ac.in

Autorisation: Basic AUTHENTICATION_TOKEN

Content-Type: application/x-www- forme-urlencoded; charset = UTF-8

Code

= AUTHORIZATION_CODE & redirect_uri = REDIRECT_URI & grant_type = authorization_code

2) Si elle le fait alors comment puis-je le faire fonctionner dans mon serveur?

Répondre

0

Vous devez comprendre comment fonctionne Verify Callback.

un coup d'oeil à http://www.passportjs.org/docs/configure/

plus précisément, dans votre code

function(accessToken, refreshToken, profile, done) { 
     console.log(accessToken); 
     // call done(args) here! 
} 

pour répondre à votre question

passport-oauth2 se chargera de tout le travail sale pour vous, l'accès /auth/iitbsso, puis redirigez l'utilisateur, comme spécifié dans /auth/iitbsso/callback