InternalOAuthError:リクエストトークンパスポートの取得に失敗しました-nodejsのgoogle

メナカ

google authentication passport-googleを使用してユーザーを認証しようとしていますが、InternalOAuthError:リクエストトークンの取得に失敗しました

エラービュー

InternalOAuthError:/ Users / menaka / WebstormProjects / cardCreaterServer / node_modulesのStrategy.OAuthStrategy._createOAuthError(/Users/menaka/WebstormProjects/cardCreaterServer/node_modules/passport-oauth1/lib/strategy.js:396:17)でリクエストトークンを取得できませんでした/passport-oauth1/lib/strategy.js:244:41 at /Users/menaka/WebstormProjects/cardCreaterServer/node_modules/oauth/lib/oauth.js:543:17 at passBackControl(/ Users / menaka / WebstormProjects / cardCreaterServer / node_modules /oauth/lib/oauth.js:397:13)IncomingMessageで。(/Users/menaka/WebstormProjects/cardCreaterServer/node_modules/oauth/lib/oauth.js:409:9)EmitNone(events.js:72:20)at IncomingMessage.emit(events.js:166:7)at endReadableNT (_stream_written.js:921:12)
at nextTickCallbackWith2Args(node.js:442:9)at process._tickCallback(node.js:356:17)

私はすでにグーグルAPIマネージャープラットフォーム内でグーグル+ APIを有効にしています。これが私の承認されたJavaScriptの起源です

http:// localhost:3000

および許可されたリダイレクトURI

http:// localhost:3000 / auth / google / callback

私のroutes.jsファイルの側に

var User = require('./models/user');
module.exports = function(app, passport){
    app.get('/', function(req, res){
        res.render('index.ejs');
    });

    app.get('/login', function(req, res){
        res.render('login.ejs', { message: req.flash('loginMessage') });
    });
    app.post('/login', passport.authenticate('local-login', {
        successRedirect: '/profile',
        failureRedirect: '/login',
        failureFlash: true
    }));

    app.get('/signup', function(req, res){
        res.render('signup.ejs', { message: req.flash('signupMessage') });
    });


    app.post('/signup', passport.authenticate('local-signup', {
        successRedirect: '/',
        failureRedirect: '/signup',
        failureFlash: true
    }));

    app.get('/profile', isLoggedIn, function(req, res){
        res.render('profile.ejs', { user: req.user });
    });

    app.get('/auth/google', passport.authenticate('google', {scope: ['profile','email']}));

    app.get('/auth/google/callback',
        passport.authenticate('google', { successRedirect: '/profile',
            failureRedirect: '/' }));


    app.get('/logout', function(req, res){
        req.logout();
        res.redirect('/');
    })
};

function isLoggedIn(req, res, next) {
    if(req.isAuthenticated()){
        return next();
    }

    res.redirect('/login');
}

passport.js内

var LocalStrategy = require('passport-local').Strategy;

var GoogleStrategy = require('passport-google-oauth').OAuthStrategy;

var User            = require('../app/models/user');

var configAuth=require('./auth');

module.exports = function(passport) {


    passport.serializeUser(function(user, done){
        done(null, user.id);
    });

    passport.deserializeUser(function(id, done){
        User.findById(id, function(err, user){
            done(err, user);
        });
    });


    passport.use('local-signup', new LocalStrategy({
            usernameField: 'email',
            passwordField: 'password',
            passReqToCallback: true
        },
        function(req, email, password, done){
            process.nextTick(function(){
                User.findOne({'local.username': email}, function(err, user){
                    if(err)
                        return done(err);
                    if(user){
                        return done(null, false, req.flash('signupMessage', 'That email already taken'));
                    } else {
                        var newUser = new User();
                        newUser.local.username = email;
                        newUser.local.password = newUser.generateHash(password);

                        newUser.save(function(err){
                            if(err)
                                throw err;
                            return done(null, newUser);
                        })
                    }
                })

            });
        }));

    passport.use('local-login', new LocalStrategy({
            usernameField: 'email',
            passwordField: 'password',
            passReqToCallback: true
        },
        function(req, email, password, done){
            process.nextTick(function(){
                User.findOne({ 'local.username': email}, function(err, user){
                    if(err)
                        return done(err);
                    if(!user)
                        return done(null, false, req.flash('loginMessage', 'No User found'));
                    if(!user.validPassword(password)){
                        return done(null, false, req.flash('loginMessage', 'invalid password'));
                    }
                    return done(null, user);

                });
            });
        }
    ));

    passport.use(new GoogleStrategy({
            consumerKey: configAuth.GoogleAuth.clientID,
            consumerSecret: configAuth.GoogleAuth.clientSecret,
            callbackURL: configAuth.GoogleAuth.callbackURL
        },
        function(accessToken, refreshToken, profile, done) {
            process.nextTick(function(){
                User.findOne({'google.id':profile.id},function(err,user){
                    if(err){
                        return done(err);
                    }
                    if(user){
                        return done(null,user);
                    }else{
                        var newUser=new User();
                        newUser.google.id=profile.id;
                        newUser.google.token=accessToken;
                        newUser.google.name=profile.displayName;
                        newUser.google.email=profile.emails[0].value;

                        newUser.save(function(err){
                            if(err){
                                throw err;
                            }
                            return done(null,newUser);
                        })
                    }
                });
            });
        }
    ));




};

callbackURLは

http:// localhost:3000 / auth / google / callback

この問題を解決するにはどうすればよいですか?

Jared Alessandroni

しばらくの間、これに頭を悩ませました-基本的な戦略に古いリンク参照があるようです。試してみることをお勧めします

https://github.com/jaredhanson/passport-google-oauth2

代わりに。それは最新で、私のためにすぐに働きました!

*デバッグソリューションにより、この解決策が得られました。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

「CSRFトークンの検証に失敗しました」エラーでポスト操作が失敗する

分類Dev

次のエラーが原因で、コンポーネントのCOMクラスファクトリの取得に失敗しました:80040154。

分類Dev

POSTリクエスト本文の取得に失敗しました

分類Dev

Travis CIPythonは「リクエスト」のインポートに失敗しました

分類Dev

Twitterリクエストトークン(oauth署名とトークンの検証に失敗しました)

分類Dev

Inno Setupから実行されたPowerShellスクリプトが、「CLSID {XXXX}を持つコンポーネントのCOMクラスファクトリの取得に失敗しました-エラー80040154」で失敗します。

分類Dev

シェルスクリプトで従属変数のエクスポートに失敗しました

分類Dev

Googleスプレッドシートのクエリに失敗しました

分類Dev

passport-facebookアクセストークンの取得に失敗しました

分類Dev

Angularライブラリがクラスのエクスポートに失敗しました-Angular6

分類Dev

AndroidStudioのAPKエラーのエクスポートAndroidリソースのリンクに失敗しました

分類Dev

リクエストの受信に失敗しましたエラーJavaScript

分類Dev

ExcelからSQLへのエクスポート:ユーザーのログインに失敗しました

分類Dev

ebayordersAPI-APIリクエストの認証トークンの検証に失敗しました

分類Dev

PlayFrameworkでプロジェクトを実行中にエラーが発生しました。ポート:9000のリッスンに失敗しました

分類Dev

NuGetパック-リモートソースからの情報の取得に失敗しました

分類Dev

CLSID {00024500-0000-0000-C000-000000000046}のコンポーネントのCOMクラスファクトリの取得に失敗しました

分類Dev

リンクリストへのノードの追加に失敗しました

分類Dev

CLSIDを持つコンポーネントのCOMクラスファクトリの取得は、次のエラーのために失敗しました:80070005アクセスが拒否されました

分類Dev

IJuliaをインストールできませんリポジトリからのクローン作成に失敗しましたエラー

分類Dev

dropdb:データベースの削除に失敗しました:エラー:チェックポイント要求に失敗しました

分類Dev

npmのインストールに失敗しましたEPROTOフェッチリクエストに失敗しました

分類Dev

golangでの投稿リクエストの取得に失敗しました

分類Dev

改造:リクエストが失敗したときに元のレスポンスボディを取得する

分類Dev

リクエストとurllibが完全なhtmlの取得に失敗しました

分類Dev

APIインポートリクエスト中に「割り当てに失敗しました-JavaScriptヒープのメモリ不足」を回避する方法

分類Dev

phpmyadminでのデータベースのエクスポートに失敗しました(localhost)

分類Dev

FirebaseInstanceId:トークンの取得に失敗しました:SERVICE_NOT_AVAILABLEエラー

分類Dev

アプリケーションのエクスポートに失敗しましたコマンドラインエラー132

Related 関連記事

  1. 1

    「CSRFトークンの検証に失敗しました」エラーでポスト操作が失敗する

  2. 2

    次のエラーが原因で、コンポーネントのCOMクラスファクトリの取得に失敗しました:80040154。

  3. 3

    POSTリクエスト本文の取得に失敗しました

  4. 4

    Travis CIPythonは「リクエスト」のインポートに失敗しました

  5. 5

    Twitterリクエストトークン(oauth署名とトークンの検証に失敗しました)

  6. 6

    Inno Setupから実行されたPowerShellスクリプトが、「CLSID {XXXX}を持つコンポーネントのCOMクラスファクトリの取得に失敗しました-エラー80040154」で失敗します。

  7. 7

    シェルスクリプトで従属変数のエクスポートに失敗しました

  8. 8

    Googleスプレッドシートのクエリに失敗しました

  9. 9

    passport-facebookアクセストークンの取得に失敗しました

  10. 10

    Angularライブラリがクラスのエクスポートに失敗しました-Angular6

  11. 11

    AndroidStudioのAPKエラーのエクスポートAndroidリソースのリンクに失敗しました

  12. 12

    リクエストの受信に失敗しましたエラーJavaScript

  13. 13

    ExcelからSQLへのエクスポート:ユーザーのログインに失敗しました

  14. 14

    ebayordersAPI-APIリクエストの認証トークンの検証に失敗しました

  15. 15

    PlayFrameworkでプロジェクトを実行中にエラーが発生しました。ポート:9000のリッスンに失敗しました

  16. 16

    NuGetパック-リモートソースからの情報の取得に失敗しました

  17. 17

    CLSID {00024500-0000-0000-C000-000000000046}のコンポーネントのCOMクラスファクトリの取得に失敗しました

  18. 18

    リンクリストへのノードの追加に失敗しました

  19. 19

    CLSIDを持つコンポーネントのCOMクラスファクトリの取得は、次のエラーのために失敗しました:80070005アクセスが拒否されました

  20. 20

    IJuliaをインストールできませんリポジトリからのクローン作成に失敗しましたエラー

  21. 21

    dropdb:データベースの削除に失敗しました:エラー:チェックポイント要求に失敗しました

  22. 22

    npmのインストールに失敗しましたEPROTOフェッチリクエストに失敗しました

  23. 23

    golangでの投稿リクエストの取得に失敗しました

  24. 24

    改造:リクエストが失敗したときに元のレスポンスボディを取得する

  25. 25

    リクエストとurllibが完全なhtmlの取得に失敗しました

  26. 26

    APIインポートリクエスト中に「割り当てに失敗しました-JavaScriptヒープのメモリ不足」を回避する方法

  27. 27

    phpmyadminでのデータベースのエクスポートに失敗しました(localhost)

  28. 28

    FirebaseInstanceId:トークンの取得に失敗しました:SERVICE_NOT_AVAILABLEエラー

  29. 29

    アプリケーションのエクスポートに失敗しましたコマンドラインエラー132

ホットタグ

アーカイブ