我的twitter身份验证工作正常,但我需要的不仅仅是用户名和显示名称,这只是Passport的限制。
我正在尝试这样做:
var newUser = new User();
newUser.uid = profile.id;
newUser.token = token;
newUser.username = profile.username;
newUser.displayName = profile.displayName;
newUser.profile_image_url = profile.profile_image_url;
如果查看护照文档,它会限制您可以使用的数据。如果您使用多种身份验证方法,我猜测它是一致的,但我只需要使用twitter。
passport.use(new TwitterStrategy({ ... },
function(token, tokenSecret, profile, done) {
console.log(profile);
....
}
);
如果我只记录个人资料,那么它会提供所有数据,所以我很困惑如何绕过它。我需要来自Twitter的完整数据,而不仅仅是护照为我挑选的一些数据,我怎么能得到这个?
答案 0 :(得分:1)
我有一个简单的解决方案,对我来说很好用:
var image_url = profile._json.profile_image_url.replace('_normal','');
我知道从字符串中删除_normal可能不是逻辑上最好的方法,但它可以工作并将原始图像url存储在数据库中。