passport.js - 使用 Passport 将 Google Oauth 中的 google 个人资料图片放大

标签 passport.js google-oauth user-profile

我正在尝试使用 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/

相关文章:

javascript - 在passport.js中使用Facebook登录,无需设置密码

ruby-on-rails - 如何在 Ruby on Rails 服务器上验证从 Android 发送的 Google token ID?

java - 使用 Java 和 Oauth2 对 Google Drive 进行身份验证

android - 在 Android 中将 Google 登录与 WebView 集成

python - 在迁移到 Django 1.6 时摆脱 get_profile()

javascript - 首次登录时的设置页面,express.js

android - 使用 Node.JS 服务器验证 Android 应用程序检索到的 Google 访问 token

node.js - 如何将配置的 Passport 对象传递到 Express4 中的路由模块?

php - 个人资料页面 PHP + MySQL

message - Leverice 中的头像图像