使用通行证从Google Oauth获取更大尺寸的Google个人资料图片

问题描述 投票:1回答:1

我试图从谷歌使用护照谷歌Oauth获取全尺寸图像。

我从其他问题中看到,小尺寸来自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);
            });
        }
      });
    }
  )
);
passport.js google-oauth2 user-profile
1个回答
1
投票

我想到了。当它被调用时,只需用空字符串替换“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,



  })
© www.soinside.com 2019 - 2024. All rights reserved.