我正在尝试使用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')
})
它可以正常工作,我可以获得Token和Token的秘密。但我无法理解此令牌是针对数据库中的哪个用户的。 Twitter回调此URL
/ twitter / return?oauth_token = E_kY_gAAAAAA4LMMAAABZV&oauth_verifier = jz8apFk29iaN7nt8HYfIjFIg9K8
我可以使用oauth_token或oauth_verifier来了解哪个用户登录吗?我该怎么理解?
答案 0 :(得分:1)
查看护照-推特包裹的完整说明:https://github.com/jaredhanson/passport-twitter。它说明了如何保存在数据库中以及如何通过Twitter帐户对用户进行身份验证。
基本上,您需要做的是在Strategy的回调中添加代码以将用户保存(或查找是否已经存在)到DB中。查看自述文件中的“配置策略”部分。
然后,您就可以像以前一样使用Twitter策略了。