passport-google-oauth
を使ってgoogleで認証させたい。(コードは下部に記載)
認証画面に遷移はするのですが、「認証エラー」の表示です。
ここで
does not match the ones authorized for the OAuth client.To update the authorized redirect URIs
と聞かれているので、Google Cloud Platformに入ってリダイレクト先のURIをawsのcloud9インスタンスのIPに指定すれば良いと思うのですが、APIとサービス/認証情報/承認済みリダイレクト先/に上記のインスタンスIPを指定しても変化ありませんでした。
何処を変更させればよいのでしょうか?
尚、APIライブラリーの「Google+API」だけを有効にしています。
//controller.js const GoogleStrategy = require('passport-google-oauth').OAuth2Strategy; //config const googleOAuth = function(){ passport.use(new GoogleStrategy({ clientID: process.env.GOOGLE_APP_ID, clientSecret: process.env.GOOGLE_APP_SECRET, callbackURL: '/auth/google/callback' }, function (accessToken, refreshToken, profile, done) { if (profile) { return done(null, profile); } else { return done(null, false); } } )); };
//router.js router.get('/auth/google', passport.authenticate('google', { scope: [ 'https://www.googleapis.com/auth/userinfo.profile', 'https://www.googleapis.com/auth/userinfo.email' ] })); router.get('/auth/google/callback', passport.authenticate('google', { failureRedirect: '/login', // 失敗したときの遷移先 }), function (req, res) { console.log(req.user.emails[0].value); } );
あなたの回答
tips
プレビュー