Javascript 我的sails.js passport.js实现中出现InternalOAuthError的原因是什么?

Javascript 我的sails.js passport.js实现中出现InternalOAuthError的原因是什么?,javascript,authentication,sails.js,passport.js,passport-google-oauth,Javascript,Authentication,Sails.js,Passport.js,Passport Google Oauth,我正在尝试使用Google OAuth2.0策略在Sails.js应用程序中实现passport.js身份验证。我已经考虑过使用sails generate auth和sails auth但它们不再受支持。我也考虑过Waterlock,但它只适用于本地、Twitter和Facebook策略 当用户按下“使用google+登录”按钮时,将调用下面的google()函数。预期的行为是,用户然后被重定向到谷歌页面,在那里他们被提示进行身份验证。实际上,以下错误记录在标记行中。此时未定义用户对象 Int

我正在尝试使用Google OAuth2.0策略在
Sails.js
应用程序中实现passport.js身份验证。我已经考虑过使用
sails generate auth
sails auth
但它们不再受支持。我也考虑过Waterlock,但它只适用于本地、Twitter和Facebook策略

当用户按下“使用google+登录”按钮时,将调用下面的
google()
函数。预期的行为是,用户然后被重定向到谷歌页面,在那里他们被提示进行身份验证。实际上,以下错误记录在标记行中。此时未定义用户对象

InternalOAuthError: Failed to obtain request token (status: 307 data: <HTML>
<HEAD>
<TITLE>Temporary Redirect</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Temporary Redirect</H1>
The document has moved <A HREF="https://accounts.google.com/OAuthGetRequestToken">here</A>.
</BODY>
</HTML>
)
其他信息:Passport在
config/policies.js
中初始化:

    '*': [
    passport.initialize(),
    passport.session(),
],

我的问题:我收到的错误的可能原因是什么?

我在使用Express、passport和passport google誓言时遇到了相同的问题。我通过切换到解决了这个问题

我不是100%确定这是为什么,但谷歌似乎已经放弃了OAuth支持很久了

重要提示:OAuth 1.0于2012年4月20日被正式弃用,不再受支持。我们鼓励您尽快迁移到OAuth 2.0

您必须将策略更改为:

var GoogleStrategy=require('passport-google-oauth20')。策略

passport.use(new GoogleStrategy({
    clientID: GOOGLE_CLIENT_ID,
    clientSecret: GOOGLE_CLIENT_SECRET,
    callbackURL: "http://www.example.com/auth/google/callback"
  },
  function(accessToken, refreshToken, profile, cb) {
    User.findOrCreate({ googleId: profile.id }, function (err, user) {
      return cb(err, user);
    });
  }
));

我在使用Express、passport和passport google宣誓时遇到了同样的问题。我通过切换到解决了这个问题

我不是100%确定这是为什么,但谷歌似乎已经放弃了OAuth支持很久了

重要提示:OAuth 1.0于2012年4月20日被正式弃用,不再受支持。我们鼓励您尽快迁移到OAuth 2.0

您必须将策略更改为:

var GoogleStrategy=require('passport-google-oauth20')。策略

passport.use(new GoogleStrategy({
    clientID: GOOGLE_CLIENT_ID,
    clientSecret: GOOGLE_CLIENT_SECRET,
    callbackURL: "http://www.example.com/auth/google/callback"
  },
  function(accessToken, refreshToken, profile, cb) {
    User.findOrCreate({ googleId: profile.id }, function (err, user) {
      return cb(err, user);
    });
  }
));