0

我正在尝试使用 twitter API 并使用 twitter 登录。我在 YouTube 上看到一段写这段代码的视频。我使用这个库

快递,快递会话,护照,护照推特

const session = require('express-session');
app.use(session({
   secret: '',
   resave: true,
   saveUninitialized: true
}));

const passport = require('passport');
const strategy = require('passport-twitter').Strategy;

passport.use(new strategy({
  consumerKey: '',
  consumerSecret: '',
  callbackURL: 'http://localhost:8085/twitter/return'

},(token, tokenSecret, profile, callback) =>{
  console.log('token '+token);
  console.log('tokenSecret '+tokenSecret);
  return callback(null, profile) ;
}));

passport.serializeUser((user, callback)=>{
  callback(null, user) ;

 });

passport.deserializeUser((obj, callback)=>{
   callback(null, obj) ;
  });

app.use(passport.initialize());
app.use(passport.session());

const get = require('./api/v1/get');
app.use('/get', get);

app.get('/twitter/login', passport.authenticate('twitter'));
app.get('/twitter/return', passport.authenticate('twitter', 
     {failureRedirect: '/get'}), (req, res)=>{
      res.redirect('/get')
})

它工作,我可以得到令牌和令牌秘密。但我不明白这个令牌是针对我数据库中的哪个用户的。twitter回调这个url

/twitter/return?oauth_token=E_kY_gAAAAAA4LMMAAABZV&oauth_verifier=jz8apFk29iaN7nt8HYfIjFIg9K8

我可以使用 oauth_token 或 oauth_verifier 来了解哪个用户登录吗?我怎么能理解?

4

1 回答 1

1

查看 passport-twitter 包的完整说明:https ://github.com/jaredhanson/passport-twitter 。它解释了如何在数据库中保存并通过 Twitter 帐户验证您的用户。

基本上,您需要做的是在策略的回调中添加代码以保存(或查找是否已经存在)数据库中的用户。查看自述文件中的“配置策略”部分。

然后,您就可以像现在一样使用 Twitter 策略了。

于 2018-08-19T16:57:31.123 回答