Nodejs中的护照OAuth2Strategy是不是对访问令牌发出自动POST请求
Posted
技术标签:
【中文标题】Nodejs中的护照OAuth2Strategy是不是对访问令牌发出自动POST请求【英文标题】:Does passport OAuth2Strategy in Nodejs make automatic POST request for access tokenNodejs中的护照OAuth2Strategy是否对访问令牌发出自动POST请求 【发布时间】:2017-12-26 05:01:59 【问题描述】:passport.js
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 || '/');
);
这就是我尝试从服务器获取 accessToken 的方式 但是我的服务器卡在http://192.168.0.111:8080/auth/iitbsso/callback?code=TDPHtfHuKv4HWNhJikkFzNz5bR4fvJ
而且我在日志中没有定义。
所以我的问题是: 1) 这个策略是自动发出这个 POST 请求还是我必须在回调中显式发出它?
POST /sso/oauth/token/HTTP/1.1
主持人:gymkhana.iitb.ac.in
授权:基本 AUTHENTICATION_TOKEN
内容类型:application/x-www-form-urlencoded; charset=UTF-8
code=AUTHORIZATION_CODE&redirect_uri=REDIRECT_URI&grant_type=authorization_code
2) 如果可以,我该如何让它在我的服务器上工作?
【问题讨论】:
【参考方案1】:您需要了解Verify Callback
的工作原理。
看看http://www.passportjs.org/docs/configure/
更具体地说,在您的代码中
function(accessToken, refreshToken, profile, done)
console.log(accessToken);
// call done(args) here!
回答你的问题
passport-oauth2
将为您处理所有脏活,访问/auth/iitbsso
,然后重定向用户,如/auth/iitbsso/callback
中指定的那样
【讨论】:
以上是关于Nodejs中的护照OAuth2Strategy是不是对访问令牌发出自动POST请求的主要内容,如果未能解决你的问题,请参考以下文章