使用护照从 Google Oauth 放大 google 个人资料图片

Make the google profile image larger size from Google Oauth using passport

我正在尝试使用护照 Google Oauth 从 google 获取全尺寸图像。

我从其他问题中看到,小尺寸来自 url 字符串末尾的“/photo.jpg?sz=50'”。

因为我认为没有办法在初始加载时请求完整大小,所以在 url 保存到数据库之前删除那部分的方法是什么。

一个人说要放:

 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,



  })