我正在尝试使用 Passport Google Oauth 从 google 获取完整尺寸的图像。
我从其他问题中看到,小尺寸来自于网址字符串末尾的“/photo.jpg?sz=50'”。
由于我认为没有办法在初始加载时请求完整大小,因此在将其保存到数据库之前删除该部分网址的方法是什么。
一个人说要放:
iamgeUrl=user[image][url].substr(0,user[image][url].indexOf('?str=')) + '?sz=100';
但不确定它会出现在我的代码中......
passport.use(
new GoogleStrategy(
{
// options for google strategy
clientID: process.env.googleclientID,
clientSecret: process.env.googleclientSecret,
callbackURL: "/auth/google/redirect"
},
(accessToken, refreshToken, profile, done) => {
console.log(accessToken, refreshToken, profile)
// check if user already exists in our own db
User.findOne({ googleId: profile.id }).then(currentUser => {
if (currentUser) {
// already have this user
done(null, currentUser);
} else {
// if not, create user in our db
new User({
googleId: profile.id,
username: profile.displayName,
thumbnail: profile._json.image.url,
firstName: profile.name.givenName,
lastName: profile.name.familyName,
email: profile.emails[0].value,
})
.save()
.then(user => {
console.log("created new user: ", user);
done(null, user);
});
}
});
}
)
);
最佳答案
我明白了。只需在调用时将“sz-50”替换为空字符串即可。
const ImgUrl = profile._json.image.url.replace("?sz=50", "")
// if not, create user in our db
new User({
googleId: profile.id,
username: profile.displayName,
thumbnail: ImgUrl,
firstName: profile.name.givenName,
lastName: profile.name.familyName,
email: profile.emails[0].value,
})
关于passport.js - 使用 Passport 将 Google Oauth 中的 google 个人资料图片放大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53624185/